Submission #00143
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #include <bits/stdc++.h> using namespace std; #define REP(i,n) for (int i=0;i<(n);i++) #define REP2(i,m,n) for (int i=m;i<(n);i++) typedef long long ll; ll MOD = 1000000007; pair<ll, ll> A[101010]; ll F[101010]; ll cnt[10]; ll powmod(ll a, ll x, ll m) { ll ret = 1; while (x) { if (x % 2) ret = ret * a % m; a = a * a % m; x /= 2; } return ret; } int main() { int N; cin >> N; REP(i, N) { ll a, b; cin >> a >> b; A[i] = make_pair(a, b); } F[0] = F[1] = 1; REP2(i, 1, 101000) F[i+1] = F[i] * (i+1) % MOD; bool only_zero = true ; REP(i, N) if (A[i].first != 0) only_zero = false ; if (only_zero) { cout << 0 << endl; cout << F[N] << endl; return 0; } sort(A, A+N); ll fst = 0; ll f, s; REP(i, N) { if (A[i].first == 0) continue ; f = A[i].first; s = A[i].second; int j; for (j = i; j < N && A[j].first == f && A[j].second == s; j++); fst = j - i; break ; } ll ans = fst; REP(i, 10) cnt[i] = 0; REP(i, N) if (A[i].first != f || A[i].second != s) cnt[A[i].first]++; REP(i, 10) ans = ans * F[cnt[i]] % MOD; ll ans2 = 0; ll inv9 = powmod(9, MOD-2, MOD); ll keta = 0; bool flag = false ; keta += s; ans2 = (powmod(10, s, MOD) - 1) * inv9 % MOD * f % MOD; ans2 = (ans2 + MOD) % MOD REP(i, N) { if (A[i].first == f && A[i].second == s && !flag) { flag = true ; continue ; } ans2 = ans2 * powmod(10, A[i].second, MOD) % MOD; (ans2 += (powmod(10, A[i].second, MOD) - 1) * inv9 % MOD * A[i].first % MOD) %= MOD; ans2 = (ans2 + MOD) % MOD } cout << ans2 << endl << ans << endl; } |
ステータス
項目 | データ |
---|---|
問題 | 0003 - repdigit |
ユーザー名 | nebukuro09 |
投稿日時 | 2017-07-07 21:25:51 |
言語 | C++17 |
状態 | Compile Error |
得点 | 0 |
ソースコード長 | 1873 Byte |
最大実行時間 | - |
最大メモリ使用量 |
コンパイルメッセージ
./Main.cpp: 関数 ‘int main()’ 内: ./Main.cpp:3:18: エラー: expected ‘;’ before ‘for’ #define REP(i,n) for (int i=0;i<(n);i++) ^ ./Main.cpp:72:5: 備考: in expansion of macro ‘REP’ REP(i, N) { ^~~ ./Main.cpp:72:9: エラー: ‘i’ was not declared in this scope REP(i, N) { ^ ./Main.cpp:3:31: 備考: in definition of macro ‘REP’ #define REP(i,n) for (int i=0;i<(n);i++) ^
セット
セット | 得点 | Cases |
---|
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|