[蓝桥杯][2018年第九届真题]日志统计
通过双指针维护\([T_i,T_i+D)\)这段时间窗口内,每个日志出现的次数。
const int N=1e5+10;
PII a[N];
int cnt[N];
int n,d,k;
int main()
{
cin>>n>>d>>k;
for(int i=0;i<n;i++)
cin>>a[i].fi>>a[i].se;
sort(a,a+n);
int l=0,r=0;
set<int> res;
while(r<n)
{
while(r<n && a[r].fi - a[l].fi < d)
{
int id=a[r].se;
cnt[id]++;
if(cnt[id] >= k)
res.insert(id);
r++;
}
int id=a[l].se;
cnt[id]--;
l++;
}
for(auto t:res)
printf("%d\n",t);
//system("pause");
return 0;
}