Submission #00269
ソースコード
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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #include<map> #include<set> #include<list> #include<cmath> #include<queue> #include<stack> #include<cstdio> #include<string> #include<vector> #include<complex> #include<cstdlib> #include<cstring> #include<numeric> #include<sstream> #include<iostream> #include<algorithm> #include<functional> #define mp make_pair #define pb push_back #define all(x) (x).begin(),(x).end() #define YES() printf("YES\n") #define NO() printf("NO\n") using namespace std; #define int long long //typedef long long ll; typedef unsigned long long ull; typedef vector< bool > vb; typedef vector< int > vi; typedef vector<vb> vvb; typedef vector<vi> vvi; typedef pair< int , int > P; const int INF=1e+10; const double EPS=1e-9; const int MOD=1000000007; const int dx[]={1,0,-1,0},dy[]={0,-1,0,1}; int power( int x, int y){ if (y == 0) return 1; int res = power(x * x % MOD,y / 2); if (y & 1) res = res * x % MOD; return res; } int mod_inv( int X){ int a = X, b = MOD, u = 1, v = 0; while (b) { int t = a / b; a -= t * b; swap(a, b); u -= t * v; swap(u, v); } if (u < 0) u += MOD; return u; } int cost = 0; void calc( int a, int b){ cost = cost * power(10,b) % MOD; int tmp = (power(10,b) % MOD + MOD - 1) * a % MOD * mod_inv(9) % MOD; cost = (cost + tmp) % MOD; } signed main(){ int n,a[100000],b[100000],mia = 11,mib = INF,ans = 1,fact[100010] = {1,1}; bool zero = false ; int app[10] = {},cnt[10] = {},same = 1; cin >> n; for ( int i = 2;i < 100010;i++) fact[i] = fact[i - 1] * i % MOD; for ( int i = 0;i < n;i++) { cin >> a[i] >> b[i]; if (a[i] == 0) zero = true ; if (mia >= a[i] && a[i]){ mia = a[i]; if (mib > b[i]) { mib = b[i]; same = 1; } else if (mib == b[i]) same++; } } if (n == 1 && a[0] == 0){ cout << 0 << endl << 1 << endl; return 0; } calc(mia,mib); bool flag = false ; vector<P> vec; for ( int i = 0;i < n;i++){ if (!flag && mia == a[i] && mib == b[i]) flag = true ; else { app[a[i]]++; cnt[a[i]] += b[i]; } } if (!zero) app[mia]++; else ans = ans * same % MOD; for ( int i = 0;i < 10;i++){ if (cnt[i]) calc(i,cnt[i]); ans = ans * fact[app[i]] % MOD; } cout << cost << endl << ans << endl; return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0003 - repdigit |
ユーザー名 | Hoget157 |
投稿日時 | 2017-07-07 22:18:21 |
言語 | C++11 |
状態 | Wrong Answer |
得点 | 0 |
ソースコード長 | 2342 Byte |
最大実行時間 | 56 ms |
最大メモリ使用量 | 3024 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 0 / 100 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
01_sample1.in | AC | 13 ms | 1248 KB |
1
|
01_sample2.in | AC | 13 ms | 1464 KB |
1
|
01_sample3.in | AC | 15 ms | 1284 KB |
1
|
02_handmake1.in | AC | 15 ms | 1372 KB |
1
|
02_handmake2.in | AC | 13 ms | 1336 KB |
1
|
02_handmake3.in | AC | 12 ms | 1300 KB |
1
|
02_handmake4.in | AC | 11 ms | 1388 KB |
1
|
02_handmake5.in | AC | 11 ms | 2880 KB |
1
|
02_handmake6.in | AC | 11 ms | 1352 KB |
1
|
02_handmake7.in | AC | 13 ms | 1312 KB |
1
|
02_handmake8.in | AC | 19 ms | 1272 KB |
1
|
02_handmake9.in | AC | 14 ms | 1360 KB |
1
|
03_random1.in | WA | 13 ms | 1320 KB |
1
|
03_random2.in | WA | 17 ms | 2684 KB |
1
|
03_random3.in | WA | 14 ms | 1364 KB |
1
|
03_random4.in | AC | 13 ms | 1324 KB |
1
|
03_random5.in | AC | 14 ms | 1412 KB |
1
|
03_random6.in | AC | 11 ms | 1368 KB |
1
|
04_random1.in | AC | 12 ms | 1456 KB |
1
|
04_random2.in | AC | 12 ms | 1416 KB |
1
|
04_random3.in | AC | 14 ms | 1252 KB |
1
|
04_random4.in | AC | 14 ms | 1344 KB |
1
|
04_random5.in | WA | 13 ms | 1300 KB |
1
|
04_random6.in | AC | 11 ms | 1384 KB |
1
|
05_random1.in | AC | 49 ms | 2880 KB |
1
|
05_random2.in | AC | 56 ms | 2820 KB |
1
|
05_random3.in | AC | 53 ms | 3016 KB |
1
|
05_random4.in | AC | 54 ms | 2956 KB |
1
|
06_random1.in | AC | 47 ms | 3024 KB |
1
|
06_random3.in | AC | 51 ms | 2960 KB |
1
|