算法
滑动窗口
模拟一下滑动窗口,记录当时窗口内帖子和对应的点赞数即可
C++ 代码
#include<iostream>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
const int maxn=1e5+5;
int n,d,k;
map<int,int> m;
set<int> s;
pair<int,int> a[maxn];
int main(){
cin>>n>>d>>k;
for(int i=0;i<n;i++){
int ts,id;
cin>>ts>>id;
a[i]={ts,id};
}
sort(a,a+n);
int i=0,j=0;
for(;j<n;j++){
int ts=a[j].first;
m[a[j].second]++;
while(a[i].first+d<=ts){
m[a[i].second]--;
i++;
}
if(m[a[j].second]>=k) s.insert(a[j].second);
}
for(auto r : s){
cout<<r<<endl;
}
return 0;
}