希望以后别人会看到你背后的努力,而不是只会看到你外表所呈现和他自己想象的结果。
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<set>
#include<vector>
#include<map>
#include<ctime>
#include<cctype>
#include<bitset>
#include<utility>
#include<sstream>
#include<iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
int N,M,T,jg;
int fg[100010],V[100010],st[100010];
struct node{
int ts;
int id;
}p[100010];
bool cmp(node a,node b){
if(a.id==b.id)
return a.ts<b.ts;
return a.id<b.id;
}
int main(){
cin>>N>>M>>T;
for(int i=0;i<M;i++)
cin>>p[i].ts>>p[i].id;
sort(p,p+M,cmp);
for(int i=0;i<M;i++){
if(p[i].ts!=st[p[i].id])
V[p[i].id]-=p[i].ts-st[p[i].id]-1;
V[p[i].id]=max(0,V[p[i].id]);
if(V[p[i].id]<=3)
fg[p[i].id]=0;
V[p[i].id]+=2;
if(V[p[i].id]>5)
fg[p[i].id]=1;
st[p[i].id]=p[i].ts;
}
for(int i=1;i<=N;i++){
if(st[i]<T){
V[i]-=T-st[i];
if(V[i]<=3)
fg[i]=0;
}
}
for(int i=0;i<=N;i++)
if(fg[i]==1)
jg++;
cout<<jg<<endl;
return 0;
}