Submission #3411532
Source Code Expand
#include"bits/stdc++.h" using namespace std; using ll = int64_t; int main() { ll N, X, Y, Z; cin >> N >> X >> Y >> Z; constexpr ll MOD = (ll)1e9 + 7; const ll MAX = 1LL << (X + Y + Z - 1); //XYZを含む⇔符号化するとX + Y + Z - 1個目, Y + Z - 1個目, Z - 1個目のビットが立っている const ll NG_BITS = (1LL << (X + Y + Z - 1)) | (1LL << (Y + Z - 1)) | (1LL << (Z - 1)); //dp[i][j] := i番目まで見て,直前の数列を符号化したものがjであるときのXYZとなっていない数 vector<vector<ll>> dp(N + 1, vector<ll>(MAX, 0)); dp[0][0] = 1; for (ll i = 0; i < N; i++) { for (ll j = 1; j <= 10; j++) { for (ll k = 0; k < MAX; k++) { //k:前回までのbit列 //遷移:kをjだけ左にシフトして、そこに先頭だけ1を立てたものを入れる ll t = (k << j) | (1LL << (j - 1)); //XYZとなっているかの判定 if ((NG_BITS & t) != NG_BITS) { //上の方は関係ないのでマスクする t &= (MAX - 1); dp[i + 1][t] += dp[i][k]; dp[i + 1][t] %= MOD; } } } } //全ての数からXYZとならない数を引く ll ans = 1; for (ll i = 0; i < N; i++) { ans *= 10; ans %= MOD; } for (ll i = 0; i < MAX; i++) { ans += MOD - dp[N][i]; ans %= MOD; } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | E - Iroha and Haiku |
User | tokumini |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1600 Byte |
Status | AC |
Exec Time | 144 ms |
Memory | 21888 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt |
All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_max1.txt, subtask1_max2.txt, subtask1_max3.txt, subtask1_min1.txt, subtask1_min2.txt, subtask1_min3.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 12 ms | 2816 KB |
subtask0_sample_02.txt | AC | 16 ms | 3328 KB |
subtask0_sample_03.txt | AC | 1 ms | 384 KB |
subtask0_sample_04.txt | AC | 144 ms | 21888 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 4 ms | 896 KB |
subtask1_03.txt | AC | 2 ms | 384 KB |
subtask1_04.txt | AC | 3 ms | 640 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | AC | 2 ms | 384 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | AC | 1 ms | 256 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 1 ms | 256 KB |
subtask1_12.txt | AC | 10 ms | 2176 KB |
subtask1_13.txt | AC | 3 ms | 896 KB |
subtask1_14.txt | AC | 1 ms | 256 KB |
subtask1_15.txt | AC | 6 ms | 1536 KB |
subtask1_16.txt | AC | 45 ms | 8832 KB |
subtask1_17.txt | AC | 11 ms | 2432 KB |
subtask1_18.txt | AC | 26 ms | 5504 KB |
subtask1_19.txt | AC | 13 ms | 2816 KB |
subtask1_20.txt | AC | 4 ms | 896 KB |
subtask1_21.txt | AC | 24 ms | 5120 KB |
subtask1_22.txt | AC | 13 ms | 2688 KB |
subtask1_23.txt | AC | 11 ms | 2432 KB |
subtask1_24.txt | AC | 6 ms | 1408 KB |
subtask1_25.txt | AC | 13 ms | 2688 KB |
subtask1_max1.txt | AC | 143 ms | 21888 KB |
subtask1_max2.txt | AC | 136 ms | 20864 KB |
subtask1_max3.txt | AC | 58 ms | 10880 KB |
subtask1_min1.txt | AC | 1 ms | 256 KB |
subtask1_min2.txt | AC | 1 ms | 256 KB |
subtask1_min3.txt | AC | 12 ms | 2816 KB |