Submission #00020
ソースコード
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 | #include <bits/stdc++.h> using namespace std; #define int long long #define MOD 1000000007 int n, m, d; int s[110]; int t[110]; int f[110]; int pow_mod( int a, int b){ int ans = 1; while (b > 0){ if (b & 1) ans = (ans * a) % MOD; a = (a * a) % MOD; b >>= 1; } return ans; } int solve( int idx){ int day = 0; int next = 0; int ans = 0; while (day < d){ ans += t[(n+idx-day%n)%n] * s[idx] % MOD; ans %= MOD; if (day % n == idx){ next += f[day%m]; day++; break ; } day++; } if (day == d){ return ans; } int nd = d-day; int af= next + s[idx] % MOD; af %= MOD; if (n * m <= nd){ int ff = 0; int tt = 0; int tt2 = 0; for ( int p = 0;p < n*m;p++){ tt += t[(n+idx-(day+p)%n)%n] * ff % MOD; tt2 += t[(n+idx-(day+p)%n)%n]; tt %= MOD; tt2 %= MOD; if ((day+p)%n == idx){ ff += f[(day+p)%m]; ff %= MOD; } } int tt3 = tt2 * ff %MOD; int kei = nd / (n*m); int keimod = kei % MOD; int t1 = keimod * tt % MOD; int t2 = (MOD + keimod-1)% MOD * (keimod) % MOD * pow_mod(2, MOD-2) % MOD; ans += t1; ans % MOD; ans += t2*tt3%MOD; ans % MOD; ans += (af*tt2%MOD * keimod)% MOD; ans %= MOD; af += ff * keimod % MOD; af %= MOD; day += kei * (n*m); } while (day < d){ ans += t[(n+idx-day%n)%n] * af % MOD; ans %= MOD; if (day % n == idx){ af += f[day%m]; af %= MOD; } day++; } return ans % MOD; } signed main(){ cin >> n >> m >> d; for ( int i = 0;i < n;i++) cin >> s[i]; for ( int i = 0;i < n;i++) cin >> t[i]; for ( int i = 0;i < m;i++) cin >> f[i]; int ans = 0; for ( int i = 0;i < n;i++){ ans += solve(i); ans %= MOD; } cout << ans << endl; return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0008 - 給料計算 |
ユーザー名 | ARUMAKAN |
投稿日時 | 2019-10-23 18:28:10 |
言語 | C++14 |
状態 | Accepted |
得点 | 10 |
ソースコード長 | 1774 Byte |
最大実行時間 | 36 ms |
最大メモリ使用量 | 732 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 10 / 10 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
in01.txt | AC | 22 ms | 604 KB |
1
|
in02.txt | AC | 21 ms | 448 KB |
1
|
in03.txt | AC | 22 ms | 420 KB |
1
|
in04.txt | AC | 21 ms | 392 KB |
1
|
in05.txt | AC | 28 ms | 364 KB |
1
|
in06.txt | AC | 17 ms | 464 KB |
1
|
in07.txt | AC | 21 ms | 564 KB |
1
|
in08.txt | AC | 28 ms | 532 KB |
1
|
in09.txt | AC | 18 ms | 636 KB |
1
|
in10.txt | AC | 24 ms | 732 KB |
1
|
in11.txt | AC | 21 ms | 708 KB |
1
|
in12.txt | AC | 22 ms | 676 KB |
1
|
in13.txt | AC | 30 ms | 652 KB |
1
|
in14.txt | AC | 23 ms | 624 KB |
1
|
in15.txt | AC | 24 ms | 464 KB |
1
|
in16.txt | AC | 24 ms | 564 KB |
1
|
in17.txt | AC | 23 ms | 664 KB |
1
|
in18.txt | AC | 21 ms | 636 KB |
1
|
in19.txt | AC | 19 ms | 608 KB |
1
|
in20.txt | AC | 30 ms | 580 KB |
1
|
in21.txt | AC | 36 ms | 552 KB |
1
|
in22.txt | AC | 32 ms | 652 KB |
1
|
in23.txt | AC | 22 ms | 624 KB |
1
|
in24.txt | AC | 18 ms | 596 KB |
1
|
in25.txt | AC | 18 ms | 700 KB |
1
|
in26.txt | AC | 24 ms | 680 KB |
1
|
in27.txt | AC | 28 ms | 648 KB |
1
|
in28.txt | AC | 24 ms | 616 KB |
1
|
in29.txt | AC | 21 ms | 720 KB |
1
|
in30.txt | AC | 16 ms | 564 KB |
1
|