QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#835067#9920. Money Game 2ucup-team5657#WA 213ms11472kbC++141.7kb2024-12-28 09:22:032024-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:04]
  • Judged
  • Verdict: WA
  • Time: 213ms
  • Memory: 11472kb
  • [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'