完整代码
#include<iostream>
#include<algorithm>
#define N 100010
using namespace std;
int n, m, T;
pair<int, int> p[N];
int pr[N], last[N];
bool in[N];
int main(){
cin >> n >> m >> T;
for(int i = 0; i < m; i++){
cin >> p[i].first >> p[i].second;
}
sort(p, p+m);
for(int i = 0; i < m;){
int j = i;
while(j < m && p[j] == p[i])
j++;
int t = p[i].first, id = p[i].second, cnt = j - i;
i = j;
pr[id] -= t - last[id] - 1;
pr[id] = max(pr[id], 0);
if(pr[id] <= 3)
in[id] = false;
pr[id] += cnt * 2;
if(pr[id] > 5)
in[id] = true;
last[id] = t;
}
for(int i = 1; i <= n; i++){
if(last[i] < T){
pr[i] -= T - last[i];
if(pr[i] <= 3)
in[i] = false;
}
}
int ans = 0;
for(int i = 1; i <= n; i++){
ans += in[i];
}
cout << ans << endl;
}