QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#637283 | #7304. Coins 2 | liuziao | WA | 1ms | 3664kb | C++14 | 1.2kb | 2024-10-13 11:59:51 | 2024-10-13 11:59:51 |
Judging History
answer
#include <bits/stdc++.h>
// #define int int64_t
const int kMaxN = 105;
int n;
int a[kMaxN];
namespace Sub1 {
const int kMaxS = 2e6 + 5;
bool f[kMaxS];
void solve() {
int lim = 2 * n * n * n;
std::fill_n(f, lim + 1, 0);
f[0] = 1;
int d = 0;
int64_t sum = 0;
for (int i = 1; i <= n; ++i) {
if (a[i]) d = std::__gcd(d, i);
sum += 1ll * i * a[i];
}
if (!d) return void(std::cout << "1\n");
for (int i = 1; i <= n; ++i) {
static int lst[kMaxN];
std::fill_n(lst, i, -1);
for (int j = 0; j <= lim; ++j) {
if (f[j]) lst[j % i] = j;
if (lst[j % i] != -1 && (j - lst[j % i]) / i <= a[i]) f[j] = 1;
}
}
int64_t ans = 0;
for (int i = 0; i <= lim; ++i) ans += f[i];
if (sum > lim) ans += sum / d - lim / d;
std::cout << ans << '\n';
}
} // namespace Sub1
void dickdreamer() {
for (int i = 1; i <= n; ++i) std::cin >> a[i];
Sub1::solve();
}
int32_t main() {
#ifdef ORZXKR
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0);
int T = 1;
// std::cin >> T;
while (std::cin >> n) dickdreamer();
// std::cerr << 1.0 * clock() / CLOCKS_PER_SEC << "s\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3592kb
input:
3 0 1 2 3 0 2 3
output:
6 12
result:
ok 2 number(s): "6 12"
Test #2:
score: 0
Accepted
time: 1ms
memory: 3664kb
input:
1 0 15 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
output:
1 120000000001
result:
ok 2 number(s): "1 120000000001"
Test #3:
score: -100
Wrong Answer
time: 1ms
memory: 3596kb
input:
5 0 2 1 0 0 5 0 0 0 0 53 5 0 6 3 0 0 5 1 0 0 0 1 5 1 0 0 0 0 5 2 0 0 0 116 5 2 0 0 0 0 5 1 0 1 106 1356 5 0 2 0 0 7926 5 0 0 2 1 2004 5 1 0 0 0 1 5 0 0 0 1 5 5 0 0 0 0 0 5 0 1 32840 0 1 5 2 0 0 0 12 5 2 0 0 1 1 5 0 1 79 56770 10 5 1 0 0 1 0 5 0 1 1 2 52165 5 0 0 0 0 1 5 0 0 1 13 0 5 0 0 0 1 10 5 0 0...
output:
6 54 20 4 2 483 3 7208 39535 10029 4 12 1 98526 39 10 227369 4 260838 2 28 22 134 78 76 4 312 233 8 1 12 214575 10 2 1 1 2 108 22149 19857 250078 55578 4 104 282 45420 1690 4853 8 28483 6 4 4878 8 10 102 4 799 69 2 18908 4 242405 84 36590 3 6927 11 25 2 32458 127 33100 2 3 8 116 4 6 499 4 6 29028 4 ...
result:
wrong answer 6th numbers differ - expected: '351', found: '483'