QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#835067 | #9920. Money Game 2 | ucup-team5657# | WA | 213ms | 11472kb | C++14 | 1.7kb | 2024-12-28 09:22:03 | 2024-12-28 09:22:04 |
Judging History
This is the latest submission verdict.
- [2024-12-31 22:17:02]
- hack成功,自动添加数据
- (/hack/1322)
- [2024-12-31 21:57:13]
- hack成功,自动添加数据
- (/hack/1321)
- [2024-12-28 09:22:03]
- Submitted
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e5 + 5;
const int M = 135;
ll T, n, a[N], ans[N], f[M][M], g[M][M];
inline void solve() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i];
ans[i] = 0;
}
if (n == 1) {
cout << a[0] << "\n";
return;
}
if (n <= 130) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
f[i][j] = g[i][j] = 0;
}
f[i][i] = g[i][i] = a[i];
}
for (int i = 0; i < n; ++i) {
for (int j = 1; j < n; ++j) {
int k = (i + j) % n;
f[i][k] = f[i][(i + j - 1) % n] / 2 + a[k];
}
}
for (int i = 0; i < n; ++i) {
for (int j = 1; j < n; ++j) {
int k = (i - j + n) % n;
g[i][k] = g[i][(i - j + 1 + n) % n] / 2 + a[k];
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (i == j) {
continue;
}
if (j == (i + 1) % n) {
ans[i] = max(ans[i], f[j][i]);
} else {
ans[i] = max(ans[i], f[j][i] + g[(j - 1 + n) % n][(i + 1) % n] / 2);
}
}
}
} else {
for (int i = 0; i < n; ++i) {
ans[i] = a[i];
ll t = 0;
for (int j = 64; j; --j) {
t += a[(i + j) % n];
t /= 2;
}
ans[i] += t;
t = 0;
for (int j = 64; j; --j) {
t += a[(i - j + n) % n];
t /= 2;
}
ans[i] += t;
}
}
for (int i = 0; i < n; ++i) {
cout << ans[i] << " \n"[i == n - 1];
}
}
int main() {
#ifdef LOCAL
assert(freopen("test.in", "r", stdin));
assert(freopen("test.out", "w", stdout));
#endif
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 5656kb
input:
3 5 2 1 4 3 5 5 2 1 3 1 2 1 1000000000
output:
6 5 7 8 8 4 4 5 4 4 1000000000
result:
ok 11 numbers
Test #2:
score: 0
Accepted
time: 1ms
memory: 5664kb
input:
1 10 8 15 18 15 13 4 14 4 17 5
output:
30 37 41 39 34 27 29 26 31 27
result:
ok 10 numbers
Test #3:
score: 0
Accepted
time: 1ms
memory: 5732kb
input:
1000 4 8 9 7 9 1 9 1 10 2 3 9 3 4 3 2 4 0 4 3 1 4 10 8 4 6 1 9 1 4 4 10 10 1 6 1 9 1 0 2 4 6 4 8 1 6 7 2 5 10 4 9 2 1 4 3 5 5 9 3 9 8 9 4 4 8 5 6 2 10 1 1 7 3 9 2 4 4 2 4 1 2 3 5 2 1 1 4 3 2 0 9 4 7 3 10 1 3 4 1 2 2 6 4 1 2 3 3 1 5 3 5 8 4 2 9 3 4 5 9 10 3 4 6 5 4 0 1 6 4 3 1 10 1 4 1 9 5 7 4 8 1 6 ...
output:
18 18 17 18 9 10 7 10 6 6 5 3 5 5 3 18 16 13 15 9 4 18 17 11 14 9 0 7 8 13 9 11 14 10 12 12 7 6 9 11 11 13 17 16 17 12 14 13 12 10 6 7 12 8 9 5 6 4 4 6 4 4 4 6 5 10 11 11 13 10 5 4 4 8 7 2 5 4 6 11 12 10 10 7 13 17 16 12 9 10 8 6 6 6 7 11 7 9 13 12 11 14 10 12 16 18 15 18 19 5 11 13 4 4 6 7 12 14 13...
result:
ok 2420 numbers
Test #4:
score: 0
Accepted
time: 0ms
memory: 7748kb
input:
1000 2 45733740 736448710 1 384264719 4 658671808 379716865 553196572 534986092 1 668964623 4 711670857 237459905 849354895 187613938 2 394629064 371184128 2 616819808 937720703 1 43217931 3 934395080 888433507 810476236 1 587663687 2 542163302 508453558 4 313836277 584869499 445629251 225398284 4 2...
output:
413958095 759315580 384264719 1254322429 1119397578 1175216002 1235849498 668964623 1136546502 1064876265 1239809530 1027491789 580221128 568498660 1085680159 1246130607 43217931 1783849951 1760869165 1721890529 587663687 796390081 779535209 830377481 1020951833 929222211 751348422 704770986 7551365...
result:
ok 2440 numbers
Test #5:
score: -100
Wrong Answer
time: 213ms
memory: 11472kb
input:
1 500000 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
output:
3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
wrong answer 1st numbers differ - expected: '4', found: '3'