QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#637281#7304. Coins 2liuziaoWA 1ms3732kbC++141.2kb2024-10-13 11:58:572024-10-13 11:58:57

Judging History

你现在查看的是最新测评结果

  • [2024-10-13 11:58:57]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3732kb
  • [2024-10-13 11:58:57]
  • 提交

answer

#include <bits/stdc++.h>

// #define int int64_t

const int kMaxN = 105;

int n;
int a[kMaxN];

namespace Sub1 {
const int kMaxS = 1e6 + 5;

bool f[kMaxS];

void solve() {
  int lim = 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: 3684kb

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: 0ms
memory: 3732kb

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: 3616kb

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
533
3
7208
39585
10029
4
12
1
98526
39
10
227369
4
260838
2
28
22
209
119
76
4
343
234
8
1
12
214575
10
2
1
1
2
109
22174
19882
250078
55578
4
104
282
45420
1690
4903
8
28483
6
4
4928
8
10
104
4
799
69
2
18983
4
242437
132
36590
3
7002
11
25
2
32458
128
33100
2
3
8
116
4
6
574
4
6
29028
...

result:

wrong answer 6th numbers differ - expected: '351', found: '533'