QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#613712#8057. Best Carry Player 4peiyangwjx#WA 45ms7820kbC++201.7kb2024-10-05 14:34:142024-10-05 14:34:19

Judging History

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

  • [2024-10-05 14:34:19]
  • 评测
  • 测评结果:WA
  • 用时:45ms
  • 内存:7820kb
  • [2024-10-05 14:34:14]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int a[500010];
int b[500010];
int ua;
int sufb[500010];
int prea[500010];
int ans;
int sum;
int lsb,lsa;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int m;
        cin>>m;
        
        ua=ans=sum=lsb=lsa=0;
        for(int i=1;i<=m;i++){
            cin>>a[i];
            prea[i]=prea[i-1]+a[i];
        }
        for(int i=1;i<=m;i++){
            cin>>b[i];
        }
        a[1]+=1e16;
        for(int i=m;i>=1;i--){
            sufb[i]=sufb[i+1]+b[i];
        }
        for(int i=1;i<=m;i++){
            int tmp=(min(a[i],sufb[m+1-i]-ua));
            ans+=tmp;
            ua+=tmp;
            if(ua<sufb[m+1-i]){
                lsb=max(lsb,m+1-i);
            }
            if(ua<prea[i]){
                lsa=max(lsa,i);
            }
        }
        bool fal1=true,fal2=true;
        if(lsb){
            bool fi=false;
            for(int i=m+2-lsb;i<=m;i++){
                if(a[i]){
                    fi=true;
                    break;
                }
            }
            if(!fi)fal1=false;
        }else{
            fal1=false;
        }
        if(lsa){
            bool fi=false;
            for(int i=m+2-lsa;i<=m;i++){
                if(b[i]){
                    fi=true;
                    break;
                }
            }
            if(!fi)fal2=false;
        }else{
            fal2=false;
        }
        if(fal1||fal2){
            
        }else{
            ans--;
        }
        cout<<ans<<endl;
        for(int i=1;i<=m;i++){
            sufb[i]=prea[i]=0;
        }
    }
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 7808kb

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: 45ms
memory: 7820kb

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
-1
4
-1
3
3
3
1
-1
0
1
1
3
0
3
-1
-1
-1
-1
0
0
0
4
0
3
1
-1
2
2
2
1
3
0
-1
2
0
-1
1
1
0
-1
3
3
3
1
2
1
-1
1
2
2
2
-1
2
1
2
1
1
-1
1
-1
4
-1
-1
2
2
0
3
3
-1
1
0
1
-1
1
1
1
2
1
2
4
0
2
4
0
1
1
-1
-1
-1
3
1
3
-1
1
0
4
3
3
0
1
1
1
1
3
1
1
-1
-1
-1
0
-1
3
2
2
-1
2
0
1
1
2
-1
1
2
4
1
2
3
2
2
2
-1
2
-1
0...

result:

wrong answer 1st numbers differ - expected: '2', found: '1'