题目大意:给出你参赛者ac题目的清单啊,n,a,b.n个人,a某人做出来一道题,用了b时间。让你计算编号为1的人的排名。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
struct node
{
int x,y,id;
bool operator<(const node&b)const{
if(x==b.x&&x==0) return id<b.id;
if(x==b.x) return y<b.y;
return x>b.x;
}
} ;
multiset<node>s;
node a[200005];
int main()
{
int n,m;
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
a[i].x=0;a[i].y=0;a[i].id=i;
s.insert(a[i]);
}
for(int i=0;i<m;i++)
{
int u,v;
cin>>u>>v;
if(a[u]<a[1]) s.erase(s.find(a[u]));
a[u].x = a[u].x+1;
a[u].y+=v;
s.insert(a[u]);
while(s.size()>0&&!(*--s.end()<a[1])) s.erase(--s.end());
cout<<s.size()+1<<endl;
}
return 0;
}
~