QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#712381#9528. New Energy VehiclelanhuoWA 0ms3840kbC++171.4kb2024-11-05 15:29:262024-11-05 15:29:30

Judging History

This is the latest submission verdict.

  • [2024-11-05 15:29:30]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3840kb
  • [2024-11-05 15:29:26]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#define int long long
#define endl '\n'
#define fi first
#define se second

int n,m,ans;

void solve(){
	cin>>n>>m;
	ans=0;
	vector<int>a(n+1),aa(n+1);
	for(int i=1;i<=n;++i){
		cin>>a[i];
		aa[i]=a[i];
	}
	vector<int>b(m+1),c(m+1);
	for(int i=1;i<=m;++i){
		cin>>b[i]>>c[i];
	}
	vector<int>pos[n+1];
	for(int i=1;i<=n;++i){
		pos[i].emplace_back(c[m]+1);
	}
	for(int i=m;i>=1;--i){
		pos[c[i]].emplace_back(b[i]);
	}
	priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int>> >qu;
	for(int i=1;i<=n;++i){
		qu.push({pos[i].back(),i});
		qu.pop();
	}
	for(int i=1;i<=m;++i){
		int cnt=b[i]-ans;
		while(!qu.empty()&&cnt){
			auto it=qu.top();
			qu.pop();
			if(cnt>=a[it.se]){
				cnt-=a[it.se];
				a[it.se]=0;
			}
			else{
				a[it.se]-=cnt;
				cnt=0;
				if(it.fi>b[i])qu.push(it);
			}
		}
		if(cnt){//跑不过这个点 
			cout<<b[i]-cnt<<endl;
			return;
		}
		ans=b[i];
		a[c[i]]=aa[c[i]];
		if(!pos[c[i]].empty()){
			qu.push({pos[c[i]].back(),c[i]});
			pos[c[i]].pop_back();
		}
	}
//	cout<<ans<<" ";
	for(int i=1;i<=n;++i){
		ans+=a[i];
	}
	cout<<ans<<endl;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int __=1;
	cin>>__;
    while(__--)solve();
    return 0;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3840kb

input:

2
3 1
3 3 3
8 1
2 2
5 2
1 2
2 1

output:

0
0

result:

wrong answer 1st lines differ - expected: '12', found: '0'