Submission #00288
ソースコード
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 | #include <bits/stdc++.h> using namespace std; #define F first #define S second #define pi M_PI #define R cin>> #define Z class #define ll long long #define ln cout<<'\n' #define in(a) insert(a) #define pb(a) push_back(a) #define pd(a) printf("%.10f\n",a) #define mem(a) memset(a,0,sizeof(a)) #define all(c) (c).begin(),(c).end() #define iter(c) __typeof((c).begin()) #define rrep(i,n) for(int i=(int)(n)-1;i>=0;i--) #define REP(i,m,n) for(int i=(int)(m);i<(int)(n);i++) #define rep(i,n) REP(i,0,n) #define tr(it,c) for(iter(c) it=(c).begin();it!=(c).end();it++) template <Z A> void pr(A a){cout<<a;ln;} template <Z A,Z B> void pr(A a,B b){cout<<a<< ' ' ;pr(b);} template <Z A,Z B,Z C> void pr(A a,B b,C c){cout<<a<< ' ' ;pr(b,c);} template <Z A,Z B,Z C,Z D> void pr(A a,B b,C c,D d){cout<<a<< ' ' ;pr(b,c,d);} template <Z A> void PR(A a,ll n){rep(i,n){ if (i)cout<< ' ' ;cout<<a[i];}ln;} ll check(ll n,ll m,ll x,ll y){ return x>=0&&x<n&&y>=0&&y<m;} const ll MAX=1000000007,MAXL=1LL<<61,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; typedef pair<ll,ll> P; typedef vector<ll> Vec; typedef vector<Vec> Mat; ll const MOD = 1e9+7; Mat operator * (Mat const & A, Mat const & B) { Mat ret(A.size(), Vec(B[0].size())); rep(i,A.size())rep(k,B.size())rep(j,B[0].size())ret[i][j]=(ret[i][j]+A[i][k]*B[k][j])%MOD; return ret; } Mat pow (Mat A, ll n) { Mat ret(A.size(),Vec(A.size())); rep(i,A.size())ret[i][i]=1; for (;n>0;n>>=1) { if (n&1)ret=ret*A; A=A*A; } return ret; } void Main() { ll d[111111]; d[0]=1; REP(i,1,111111) d[i]=(d[i-1]*i)%MAX; ll n; R n; P b[n]; map<ll,ll> m,m2; rep(i,n) { cin >> b[i].F >> b[i].S; m[b[i].F]+=b[i].S; m2[b[i].F]++; } sort(b,b+n); int k=0; while (n>1&&!b[k].F) k++; ll x=0; { Mat a;a.resize(2,Vec(2,0)); a[0][0]=1; a[0][1]=0; a[1][0]=1; a[1][1]=10; a= pow (a,b[k].S); x+=a[1][0]*b[k].F; x%=MAX; } rep(i,10) { Mat a;a.resize(2,Vec(2,0)); a[0][0]=1; a[0][1]=0; a[1][0]=1; a[1][1]=10; a= pow (a,m[i]-(i==b[k].F?b[k].S:0)); x=(x*a[1][1])%MAX; x=(x+a[1][0]*i); } pr(x); ll ans=1; rep(i,10) { ans*=max(1LL,d[m2[i]]-((i==b[k].F&&b[k].S==1)?1:0)); ans%=MAX; } pr(ans); } int main(){ios::sync_with_stdio(0);cin.tie(0);Main(); return 0;} |
ステータス
項目 | データ |
---|---|
問題 | 0003 - repdigit |
ユーザー名 | kzyKT |
投稿日時 | 2017-07-07 22:27:23 |
言語 | C++11 |
状態 | Wrong Answer |
得点 | 0 |
ソースコード長 | 2357 Byte |
最大実行時間 | 35 ms |
最大メモリ使用量 | 3168 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 0 / 100 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
01_sample1.in | AC | 14 ms | 1376 KB |
1
|
01_sample2.in | AC | 13 ms | 1360 KB |
1
|
01_sample3.in | AC | 19 ms | 1348 KB |
1
|
02_handmake1.in | AC | 16 ms | 1336 KB |
1
|
02_handmake2.in | WA | 14 ms | 1328 KB |
1
|
02_handmake3.in | WA | 11 ms | 1444 KB |
1
|
02_handmake4.in | AC | 11 ms | 1436 KB |
1
|
02_handmake5.in | AC | 14 ms | 1424 KB |
1
|
02_handmake6.in | AC | 16 ms | 1408 KB |
1
|
02_handmake7.in | AC | 11 ms | 1396 KB |
1
|
02_handmake8.in | AC | 13 ms | 1516 KB |
1
|
02_handmake9.in | AC | 15 ms | 1376 KB |
1
|
03_random1.in | WA | 14 ms | 1492 KB |
1
|
03_random2.in | WA | 14 ms | 1480 KB |
1
|
03_random3.in | WA | 14 ms | 1336 KB |
1
|
03_random4.in | WA | 15 ms | 1328 KB |
1
|
03_random5.in | WA | 15 ms | 1312 KB |
1
|
03_random6.in | WA | 13 ms | 1300 KB |
1
|
04_random1.in | WA | 12 ms | 1536 KB |
1
|
04_random2.in | WA | 16 ms | 1520 KB |
1
|
04_random3.in | WA | 15 ms | 1508 KB |
1
|
04_random4.in | WA | 15 ms | 1496 KB |
1
|
04_random5.in | WA | 16 ms | 1488 KB |
1
|
04_random6.in | WA | 15 ms | 1600 KB |
1
|
05_random1.in | WA | 33 ms | 3124 KB |
1
|
05_random2.in | WA | 34 ms | 3080 KB |
1
|
05_random3.in | WA | 33 ms | 3168 KB |
1
|
05_random4.in | WA | 35 ms | 3000 KB |
1
|
06_random1.in | AC | 29 ms | 2952 KB |
1
|
06_random3.in | WA | 34 ms | 3044 KB |
1
|