当多个变量包含多个变量时,注意可以用数组结构体来表示成一个数组来解决

#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;
}