40分求大佬调
查看原帖
40分求大佬调
566190
我是歌者楼主2024/9/30 18:43
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,t,arr[100000],id[10000];
pair<int,int> q[100000];
bool cmp(pair<int,int> x,pair<int,int> y){
	return x.first<y.first;
}
int main(){
	cin>>n>>m>>t;
	for(int i=0;i<m;i++){
		cin>>a>>b;
		q[i]={a,b};
	}
	int i=1,idex=0,idex2=0;
	sort(q,q+m,cmp);
	while(i<=t){
		while(i>=q[idex].first&&idex<m){
			arr[q[idex].second]+=3;
			idex++;
		}
		for(int k=1;k<=n;k++){
			if(arr[k]>=0) arr[k]-=1;
			if(arr[k]>5){
				int flag=0;
				for(int j=0;j<idex2;j++){
					if(id[j]==-1) continue;
				    if(arr[id[j]]<=3){
						id[j]=-1;
					}
					if(id[j]==k){
						flag=1;
					}
				}
				if(flag!=1){
					id[idex2]=k;
					idex2++;
				}
				
			}
			else{
				for(int j=0;j<idex2;j++){
					if(arr[id[j]]<=3){
						id[j]=-1;
					}
				}
			}
		}
		i++;
	}
	int ans=0;
	for(int i=0;i<idex2;i++){
		if(id[i]!=-1){
			ans++;
		}
	}
	cout<<ans;
	return 0;
	
}
2024/9/30 18:43
加载中...