QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#928954 | #8057. Best Carry Player 4 | sckrt# | WA | 59ms | 3712kb | C++20 | 1.7kb | 2025-03-08 16:55:46 | 2025-03-08 16:55:47 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int tt;
cin>>tt;
while(tt--)
{
int m;
cin>>m;
vector<int> a(m+1),b(m+1);
int tota=0,totb=0,mxa=0,mxb=0;
for(int i=0;i<m;++i)
{
cin>>a[i],tota+=a[i];
if(a[i]) mxa=i;
}
for(int i=0;i<m;++i)
{
cin>>b[i],totb+=b[i];
if(b[i]) mxb=i;
}
if(mxa+mxb<m)
{
cout<<0<<endl;
continue;
}
if(tota>totb) b[0]+=(tota-totb);
else a[0]+=(totb-tota);
int ans=0,ua=0,flag1=1;
priority_queue<array<int,2>,vector<array<int,2>>,greater<array<int,2>>> que;
for(int i=0;i<m;++i)
{
if(b[m-i-1]>0) que.push({m-i-1,b[m-i-1]});
while(!que.empty()&&a[i])
{
int j=que.top()[0];
que.pop();
if(i+j>=m) flag1=0;
ua=i;
if(b[j]<=a[i])
{
a[i]-=b[j];
ans+=b[j];
b[j]=0;
}
else
{
b[j]-=a[i];
ans+=a[i];
a[i]=0;
que.push({j,b[j]});
}
}
}
int flag=1;
while(!que.empty())
{
int ub=que.top()[0];
que.pop();
if(ua+ub>=m) flag=0;
}
cout<<ans-(flag&flag1)<<endl;
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3712kb
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: 59ms
memory: 3712kb
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'