QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#697117 | #9528. New Energy Vehicle | yukino | WA | 0ms | 3596kb | C++17 | 1.5kb | 2024-11-01 10:45:00 | 2024-11-01 10:45:00 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
const int N=1e6+10;
const int M=1e6+10;
int mod=998244353;
#define lowbit(x) ((x)&(-x))
#define int long long
using namespace std;
void solve()
{
int n,m;
cin>>n>>m;
vector<int> a(n+1),x(m+1),t(m+1);
for(int i=1;i<=n;i++)
cin>>a[i];
auto b=a;
queue<int> q;
for(int i=1;i<=m;i++)
{
cin>>x[i]>>t[i];
q.push(t[i]);
}
for(int i=1;i<=n;i++)
q.push(i);
int ans=0;
for(int i=1;i<=m;i++)
{
int u=q.front();
q.pop();
if(a[u]>=(x[i]-x[i-1]))
{
ans+=(x[i]-x[i-1]);
}
else
{
int num=a[u];
a[u]=0;
int v=u;
while(num<(x[i]-x[i-1])&&!q.empty())
{
v=q.front();
q.pop();
num+=a[v];
a[v]=0;
}
if(num>=x[i]-x[i-1])
{
ans+=(x[i]-x[i-1]);
a[v]=num-(x[i]-x[i-1]);
if(a[v]>0)
q.push(v);
}else
{
ans+=num;
break;
}
}
a[t[i]]=b[t[i]];
q.push(t[i]);
}
// for(int i=1;i<=n;i++)
// ans+=a[i];
cout<<ans<<"\n";
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3596kb
input:
2 3 1 3 3 3 8 1 2 2 5 2 1 2 2 1
output:
8 2
result:
wrong answer 1st lines differ - expected: '12', found: '8'