题目描述
双指针算法
这道题就是 先将每一个id获得的赞都加上
然后开始判断 是否在这个时间范围内不在的 就减去
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<unordered_set>
#include<unordered_map>
#include<queue>
#include<vector>
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define q_q ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N = 1e5+10;
PII r[N];
int n,d,k;
int cnt[N];
bool st[N];
int main(){
q_q
cin >> n >> d >> k;
for(int i = 0 ; i < n; i++){
cin >> r[i].x >> r[i].y;
}
sort(r,r+n);
for(int i = 0 ,j = 0; i < n ;i++){
int t = r[i].y;
cnt[t]++;
while( r[i].x - r[j].x >= d){
cnt[r[j].y]--;
j++;
}
if(cnt[t] >= k) st[t] = true;
}
for(int i = 0 ; i < N; i++){
if(st[i]){
cout << i << endl;
}
}
return 0;
}
大佬
6