QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#771368 | #8057. Best Carry Player 4 | Tomorrow# | WA | 0ms | 13908kb | C++17 | 2.5kb | 2024-11-22 12:13:19 | 2024-11-22 12:13:19 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
i64 m, res;
i64 a[500005];
i64 b[500005];
i64 a1[500005];
i64 b1[500005];
i64 hza[500005];
i64 hzb[500005];
void solve(){
cin >> m;
for(int i = 0; i < m; i++){
cin >> a[i];
a1[i] = a[i];
}
for(int i = 0; i < m; i++){
cin >> b[i];
b1[i] = b[i];
}
hza[m] = 0;
hzb[m] = 0;
for(int i = m - 1; i >= 0; i--){
hza[i] = hza[i+1] + a[i];
hzb[i] = hzb[i+1] + b[i];
}
/*
for(int i = 0; i < m; i++){
cout << hza[i] << ' ';
}
cout << endl;
for(int i = 0; i < m; i++){
cout << hzb[i] << ' ';
}
cout << endl;
*/
res = 0;
i64 flag = 1;
i64 l = 0;
i64 flag2 = 0;
for(i64 i = m - 1; i >= 0; i--){
while(l < m){
if(l < (m - 1 - i)){
l++;
continue;
}
if(b1[l] < a1[i]){
if(l + i >= m && a1[i] > 0 && b1[l] > 0){
flag = 0;
}
a1[i] -= b1[l];
res += b1[l];
b1[l] = 0;
l++;
continue;
}
if(l + i >= m && a1[i] > 0 && b1[l] > 0){
flag = 0;
}
b1[l] -= a1[i];
res += a1[i];
a1[i] = 0;
break;
}
}
res += b1[m-1];
b1[m-1] = 0;
res += a1[m-1];
a1[m-1] = 0;
/*
for(int i = 0; i < m; i++){
cout << a1[i] << ' ';
}
cout << endl;
for(int i = 0; i < m; i++){
cout << b1[i] << ' ';
}
cout << endl;
*/
for(int i = 1; i < m; i++){
if(b[i] <= 0){
continue;
}
if(hza[m - i] >= 0){
flag2 = 1;
}
}
for(int i = 1; i < m; i++){
if(a[i] <= 0){
continue;
}
if(hzb[m - i] >= 0){
flag2 = 1;
}
}
if(flag2 == 0){
cout << 0 << endl;
return;
}
//cout << res << endl;
//cout << flag << endl;
res -= flag;
res = max(0ll, res);
cout << res << endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
if(fopen("test.in","r"))
{
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
}
i64 tt = 1;
cin >> tt;
while(tt--){
solve();
}
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 13908kb
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 1 467899 28
result:
wrong answer 3rd numbers differ - expected: '2', found: '1'