QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#695833#9528. New Energy VehicleJiangnan01WA 0ms3628kbC++202.0kb2024-10-31 20:53:312024-10-31 20:53:32

Judging History

This is the latest submission verdict.

  • [2024-10-31 20:53:32]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3628kb
  • [2024-10-31 20:53:31]
  • Submitted

answer

#include <bits/stdc++.h>
#include<iostream>
using namespace std;
#define fs first
#define endl '\n'
#define sc second
#define pb push_back
#define int long long
#define itn int 
#define ull unsigned long long
#define bit(x) (1ll << (x))
#define sz(x) (int)(x).size()
#define al(x) (x).begin(),(x).end()
#define all(x) (x).begin() + 1,(x).end()
using ll = long long;
using VI = vector <int>;
using VS = vector <string>;
using PII = pair <int, int>;
using I64 = unsigned long long;
using VVI = vector < vector<int> >;
const int INF = 1e10;
const int inf=1e9+10;
const int maxn=1e6+5;
const int mod=998244353;
const double pi = acos(-1.0);
const double eps=1e-12;
void solve()
{
	int n,m;cin>>n>>m;
	VI a(n+1),tmp(n+1);
    vector<int> f(n+1);
    map<int,set<int>> mp1;
	for(int i=1;i<=n;i++) cin>>a[i],tmp[i]=a[i];
	vector<PII> v(m+1);
	map<int,int> mp;
	for(int i=1;i<=m;i++){
		cin>>v[i].fs>>v[i].sc;
		mp[v[i].sc]=1;
        mp1[v[i].second].insert(v[i].first);
	}
	sort(all(v));
	priority_queue<PII,vector<PII>,greater<PII> >q;
    set<pair<int,int>> st;
	for(int i=1;i<=m;i++)
		q.push(v[i]);
	for(int i=1;i<=n;i++){
		mp1[i].insert(INF);
		if(mp.count(i)) continue;
		q.push({INF,i});
	}
	int pos=0;
	for(int i=0;i<m;i++)
	{
		int d=v[i+1].fs-v[i].fs;
		pos+=d;
		while(!q.empty()){
			auto u=q.top();q.pop();
			if(d<=tmp[u.sc]){
				tmp[u.sc]-=d;d=0;
				q.push(u);
				break;
			}
			d-=tmp[u.sc];tmp[u.sc]=0;
		}
        auto it = mp1[v[i+1].second].lower_bound(v[i+1].first);
		q.push({*(++it),v[i+1].sc});
		if(d>0){
			cout<<pos-d<<endl;return ;
		}
		tmp[v[i+1].second]=a[v[i+1].second];
		//st.insert({INF,v[i+1].second});
	}
	int res=0;
	for(int i=1;i<=n;i++) res+=tmp[i];
	cout<<pos+res<<endl;
}
signed main(){ 
   	ios::sync_with_stdio(false);
   	cin.tie(nullptr);
   	cout.tie(nullptr);
	int T = 1;   
    cout << fixed << setprecision(15);
    cin >> T;
    while(T--){
    	solve();
	}
    return 0;
}

詳細信息

Test #1:

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

input:

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

output:

12
8

result:

wrong answer 2nd lines differ - expected: '9', found: '8'