#include <iostream>
#include <algorithm>
#define x first
#define y second
using namespace std;
const int N = 100010;
typedef pair<int,int> PII;
int n,d,k;
int cnt[N];
PII logs[N];
bool st[N];
int main()
{
scanf("%d %d %d",&n,&d,&k);
for(int i = 0;i<n;i++) scanf("%d %d",&logs[i].x,&logs[i].y);
sort(logs,logs+n); //按点赞日期排序
//统计每d段时间每个帖子的点赞数
for(int i = 0,j = 0;i<n;i++)
{
int id = logs[i].y; //第i条记录的id的点赞数+1
cnt[id]++;
while(logs[i].x - logs[j].x >= d) //日期超过了d天
{
cnt[logs[j].y]--; //第j条记录的点赞日期已经超时了,那么那条id被点的赞就不算了,加上第i条记录的新日期的点赞,maybe本条点赞的不是那个id,但是后面遍历点赞的日期不一定增加,id在这个时间也是有新赞能加的
j++;
}
if(cnt[id] >= k)
st[id] = true;
}
for(int i = 0;i < n;i++)
{
if(st[i]) printf("%d\n",i);
}
}
blue bridge
最新推荐文章于 2024-10-12 11:49:57 发布