24分求调
查看原帖
24分求调
499682
operator_楼主2022/8/19 10:07
#include<bits/stdc++.h>
using namespace std;
int n,g,ans;
struct QWQ{
	int t;
	int id;
	int x;
	void read() {cin>>t>>id>>x;}
} w[100005];
struct qwq{
	int id;
	int a;
	bool operator <(const qwq a1) const {return a<=a1.a;}
};
bool cmp(QWQ a1,QWQ a2) {return a1.t<a2.t;}
priority_queue<qwq> pq;
map<int,int> mp;
int main()
{
	cin>>n>>g;
	pq.push({0,0});
	for(int i=1;i<=n;i++) 
		w[i].read();
	sort(w+1,w+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		int num=w[i].id,x=w[i].x;
		while(!pq.empty()&&mp[pq.top().id]!=pq.top().a) pq.pop();
		int f=pq.top().a;
		if(f<mp[num]+x)
			ans++;
		if(f==mp[num]+x&&mp[num]<f)
			ans++;
		if(f>mp[num]+x&&mp[num]==f) 
			ans++;
		mp[num]+=x;
		pq.push({num,mp[num]});
	}
	cout<<ans;
	return 0;
 } 
2022/8/19 10:07
加载中...