1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 const long int NUM = 100000; 6 vector< vector<int> > v_ids(NUM+1); 7 int N,D,K; 8 9 bool check(vector<int> v){ 10 int j=0; 11 int r=j+K-1; 12 bool flag = false; 13 while(r<v.size()){ 14 if(v[r]-v[j] < D){ 15 flag = true; 16 break; 17 } 18 else{ 19 j++; 20 r=j+K-1; 21 } 22 } 23 return flag; 24 } 25 26 int main(){ 27 cin>>N>>D>>K; 28 int ts,id; 29 int i; 30 for(i=0;i<N;i++){ 31 cin>>ts>>id; 32 v_ids[id].push_back(ts); 33 } 34 for(i=0;i<=NUM;i++){ 35 if( !v_ids[i].empty() ){ 36 sort(v_ids[i].begin(),v_ids[i].end()); 37 if (check(v_ids[i])) 38 cout<<i<<endl; 39 } 40 } 41 }
原文:https://www.cnblogs.com/candyYang/p/10521655.html