Submission #17992965
Source Code Expand
Copy
#include <bits/stdc++.h>using namespace std;using ll = long long;ll N, X;vector<ll> A(60, 0);const ll M = 100000;ll memo[60][M] = {};ll cnt(ll index, ll zan) {if (zan < M && memo[index][zan] > 0) return memo[index][zan];if (index == 0) return 1;if (zan == 0) return 1;ll temp = zan / A[index];ll zan1 = zan - A[index] * temp;ll zan2 = abs(zan - A[index] * (temp + 1));ll ans;if (temp == 0 && index != N - 1) ans = cnt(index - 1, zan1);else if (zan1 == 0) ans = cnt(index - 1, zan2);else if (zan2 == 0) ans = cnt(index - 1, zan1);
#include <bits/stdc++.h> using namespace std; using ll = long long; ll N, X; vector<ll> A(60, 0); const ll M = 100000; ll memo[60][M] = {}; ll cnt(ll index, ll zan) { if (zan < M && memo[index][zan] > 0) return memo[index][zan]; if (index == 0) return 1; if (zan == 0) return 1; ll temp = zan / A[index]; ll zan1 = zan - A[index] * temp; ll zan2 = abs(zan - A[index] * (temp + 1)); ll ans; if (temp == 0 && index != N - 1) ans = cnt(index - 1, zan1); else if (zan1 == 0) ans = cnt(index - 1, zan2); else if (zan2 == 0) ans = cnt(index - 1, zan1); else ans = cnt(index - 1, zan1) + cnt(index - 1, zan2); if (zan < M) memo[index][zan] = ans; return ans; } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N; cin >> X; for (ll i = 0; i < N; i++) { cin >> A[i]; } ll ans = cnt(N - 1, X); cout << ans << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Valid payments |
User | nakaken88 |
Language | C++ (GCC 9.2.1) |
Score | 600 |
Code Size | 919 Byte |
Status | AC |
Exec Time | 48 ms |
Memory | 3868 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All | answer_big_00.txt, border_00.txt, border_01.txt, border_02.txt, border_03.txt, border_04.txt, border_05.txt, border_06.txt, border_07.txt, border_08.txt, border_09.txt, handmade_00.txt, handmade_01.txt, handmade_02.txt, handmade_03.txt, longest_00.txt, longest_01.txt, longest_02.txt, longest_03.txt, longest_04.txt, overflow_killer_00.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
answer_big_00.txt | AC | 48 ms | 3680 KB |
border_00.txt | AC | 3 ms | 3640 KB |
border_01.txt | AC | 2 ms | 3548 KB |
border_02.txt | AC | 2 ms | 3512 KB |
border_03.txt | AC | 3 ms | 3552 KB |
border_04.txt | AC | 3 ms | 3640 KB |
border_05.txt | AC | 2 ms | 3600 KB |
border_06.txt | AC | 2 ms | 3568 KB |
border_07.txt | AC | 2 ms | 3584 KB |
border_08.txt | AC | 2 ms | 3540 KB |
border_09.txt | AC | 4 ms | 3564 KB |
handmade_00.txt | AC | 1 ms | 3636 KB |
handmade_01.txt | AC | 2 ms | 3552 KB |
handmade_02.txt | AC | 3 ms | 3644 KB |
handmade_03.txt | AC | 2 ms | 3600 KB |
longest_00.txt | AC | 3 ms | 3868 KB |
longest_01.txt | AC | 2 ms | 3744 KB |
longest_02.txt | AC | 37 ms | 3628 KB |
longest_03.txt | AC | 6 ms | 3568 KB |
longest_04.txt | AC | 8 ms | 3608 KB |
overflow_killer_00.txt | AC | 2 ms | 3468 KB |
random_00.txt | AC | 2 ms | 3584 KB |
random_01.txt | AC | 3 ms | 3488 KB |
random_02.txt | AC | 5 ms | 3600 KB |
random_03.txt | AC | 2 ms | 3520 KB |
random_04.txt | AC | 2 ms | 3616 KB |
random_05.txt | AC | 2 ms | 3552 KB |
random_06.txt | AC | 2 ms | 3492 KB |
random_07.txt | AC | 2 ms | 3556 KB |
random_08.txt | AC | 3 ms | 3720 KB |
random_09.txt | AC | 2 ms | 3472 KB |
sample_01.txt | AC | 2 ms | 3564 KB |
sample_02.txt | AC | 3 ms | 3612 KB |
sample_03.txt | AC | 1 ms | 3532 KB |
sample_04.txt | AC | 2 ms | 3668 KB |