QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#696766 | #9528. New Energy Vehicle | luoyandanfei | WA | 0ms | 3484kb | C++20 | 2.3kb | 2024-11-01 01:12:40 | 2024-11-01 01:12:42 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int T,n,m;
int main()
{
cin>>T;
while(T--){
cin>>n>>m;
unordered_map<int,int>a;
unordered_map<int,int>b;
vector<int>t(m);
vector<int>x(m);
for(int i=0;i<n;i++){
int A;
cin>>A;
a[i+1]=A;
b[i+1]=A;
}
for(int i=0;i<m;i++){
int x1,t1;
cin>>x1>>t1;
t[i]=t1;
x[i]=x1;
}
for(int i=1;i<m;i++){
x[i]=x[i]-x[i-1];
}
unordered_map<int,bool>c;
for(int i=0;i<m;i++){
c[t[i]]=true;
}
for(int i=1;i<=n;i++){
if(!c[i])t.push_back(i);
}
// for(int i=1;i<=n;i++){
// cout<<a[i]<<" ";
// }
// cout<<endl;
// for(int i=0;i<m;i++){
// cout<<x[i]<<" "<<t[i]<<endl;
// }
// for(int i=0;i<t.size();i++){
// cout<<t[i]<<" ";
// }
// cout<<endl;
// cout<<endl;
int idx=0;
int cnt=0;
int ans=0;
for(int i=0;i<m;i++){
int count=0;
while(x[i]){
if(x[i]>=a[t[cnt]]){
x[i]-=a[t[cnt]];
count+=a[t[cnt]];
a[t[cnt]]=0;
cnt++;
}
else{
count+=x[i];
a[t[cnt]]-=x[i];
x[i]=0;
}
if(cnt==t.size()){
break;
}
}
if(x[i])break;
ans+=count;
// for(int i=1;i<=n;i++){
// cout<<a[i]<<" ";
// }
// cout<<endl;
// cout<<ans<<endl;
a[t[i]]=b[t[i]];
// for(int i=1;i<=n;i++){
// cout<<a[i]<<" ";
// }
// cout<<endl;
// cout<<endl;
cnt=i+1;
}
for(int i=1;i<=n;i++){
ans+=a[i];
// cout<<a[i]<<" ";
}
// cout<<endl;
cout<<ans<<endl;
// cout<<endl;
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3480kb
input:
2 3 1 3 3 3 8 1 2 2 5 2 1 2 2 1
output:
12 9
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3484kb
input:
6 3 2 2 2 2 6 1 7 1 2 2 3 3 2 1 6 2 2 3 2 2 5 1 7 2 9 1 2 2 3 3 2 1 6 2 1 1 999999999 1000000000 1 1 1 1000000000 1000000000 1
output:
9 5 0 5 0 2000000000
result:
wrong answer 2nd lines differ - expected: '11', found: '5'