33pts WA 求助
查看原帖
33pts WA 求助
602803
_qingshu_楼主2024/3/20 08:46
#include<bits/stdc++.h>
using namespace std;
int n,m,c[5200010],ans;
vector<int>e[5200010];
multiset<int>q;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>c[i];
	for(int i=1,s,t;i<=m;i++){
		cin>>s>>t;
		e[s].emplace_back(t);
	}
	for(int i=1;i<=n;i++){
		while(q.size()>c[i])q.erase(--q.end());
		while(q.size()&&(*q.begin())==i)q.erase(q.begin()),ans++;
		for(auto j : e[i]){
			if(q.size()<c[i])q.insert(j);
			else if((*--q.end())>j)q.erase(--q.end()),q.insert(j);
		}
	}
	cout<<ans;
}
//
2024/3/20 08:46
加载中...