当多个变量包含多个变量时,注意可以用数组结构体来表示成一个数组来解决
#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int num[N];//记录所有帖子点赞
int flag[N];//筛选出热帖
struct post {
int ts;
int id;
}p[N];//数组结构体,用于尺取
int cmp(post x, post y)//结构体排序
{
return x.ts < y.ts;//从小到大
}
int main()
{
int n, d, k;
cin >> n >> d>> k;
for (int i = 0; i < n; i++)
{
cin >> p[i].ts >> p[i].id;
}
sort(p, p + n, cmp);//按时间从小到大排序
for (int i = 0, j = 0; i < n; i++)
{
num[p[i].id]++;
while (p[i].ts - p[j].ts >= d)//增加时间判定超出时间的点赞数
{
num[p[j].id]--;
j++;
}
for (int i = 0; i < n; i++)
{
if (num[p[i].id] >= k)
flag[p[i].id] = 1;
}
}
for (int i = 0; i < N; i++)
{
if (flag[i] == 1)
cout << i << endl;
}
return 0;
}