QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#778578 | #8057. Best Carry Player 4 | ShwStone | WA | 57ms | 5924kb | C++14 | 988b | 2024-11-24 15:17:52 | 2024-11-24 15:17:53 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int MAXN(5e5 + 5);
int n;
long long a[MAXN], b[MAXN];
void solve() {
scanf("%d", &n);
int maxa = 0;
long long suma = 0;
for (int i = 0; i < n; i++) {
scanf("%lld", a + i);
if (a[i]) maxa = i;
suma += a[i];
}
int maxb = 0;
long long sumb = 0;
for (int i = 0; i < n; i++) {
scanf("%lld", b + i);
if (b[i]) maxb = i;
sumb += b[i];
}
if (suma < sumb) a[0] += sumb - suma;
else b[0] += suma - sumb;
if (maxa + maxb < n) {
puts("0");
return;
}
int j = n - 1;
bool flag = false;
long long ans = 0;
for (int i = 0; i < n; i++) {
while (a[i] && i + j >= n - 1) {
long long t = min(b[j], a[i]);
if (t) {
b[j] -= t;
a[i] -= t;
ans += t;
if (i + j >= n) flag = true;
}
if (!b[j]) j--;
}
}
if (!flag) ans--;
printf("%lld\n", ans);
}
int main() {
int _;
scanf("%d", &_);
while (_--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5836kb
input:
5 2 1 2 3 4 3 1 0 1 0 1 0 4 1 0 0 1 1 1 1 1 5 123456 114514 1919810 233333 234567 20050815 998244353 0 0 0 10 5 3 5 3 2 4 2 4 1 5 9 9 8 2 4 4 3 5 3 0
output:
5 1 2 467900 29
result:
ok 5 number(s): "5 1 2 467900 29"
Test #2:
score: -100
Wrong Answer
time: 57ms
memory: 5924kb
input:
100000 5 0 1 1 1 1 0 0 1 0 0 5 0 0 0 0 0 1 1 1 0 0 5 0 0 2 1 1 0 2 1 0 1 5 0 0 0 0 0 1 2 1 0 0 5 0 1 0 1 1 0 0 1 1 1 5 2 0 0 0 1 1 0 0 0 3 5 2 0 0 1 1 0 2 1 1 1 5 0 0 0 0 2 0 0 0 0 1 5 0 0 0 0 0 0 1 1 0 0 5 4 0 0 0 0 0 0 0 1 0 5 0 0 0 0 1 2 1 1 0 0 5 0 2 3 0 0 0 0 0 1 0 5 1 1 1 0 1 1 0 1 0 1 5 0 0 0...
output:
1 0 4 0 3 3 3 2 0 0 1 0 2 0 3 0 0 0 0 0 0 0 4 0 4 1 0 2 3 3 1 5 0 0 2 0 0 1 1 0 0 3 5 3 2 2 1 0 0 2 2 2 0 3 0 2 1 1 0 1 0 4 0 0 2 2 0 3 3 0 2 0 1 0 0 1 1 2 0 3 4 0 2 5 0 1 1 0 0 0 2 1 3 0 1 0 4 3 3 0 2 2 0 1 3 1 1 0 0 0 1 0 3 2 2 0 1 0 1 0 1 0 0 2 4 1 2 3 2 2 2 0 1 0 0 2 3 1 3 0 0 2 2 3 0 1 2 0 1 1 ...
result:
wrong answer 1st numbers differ - expected: '2', found: '1'