题目链接
解题思路:
就是用 vector 然后暴力就可
关于vector
用到的地方还真是蛮多的
它是一个动态数组 可以存放任意类型
例如:
vector <int> a;
a.push_back(1) 把1压入vector 那么 a[0] 就是 1 (下标从0开始
vector <int> a[10]
a[i].push_back(1) 把1 压入vector 那么 a [i] [0] 就是 1
a[i].push_back(2) a[i] [1] 就是 2
代码如下:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn=1e5+10;
vector<int> a[maxn];
int k,d;
int f(int x)
{
int s=a[x].size();
if(s<k)
return 0;
sort(a[x].begin(),a[x].end());
for(int i=0;i+k-1<s;i++)
{
if(a[x][i+k-1]-a[x][i]<d)
{
return 1;
}
}
return 0;
}
int main()
{
int t,x,n;
int i;
cin>>n>>d>>k;
for(i=0;i<n;i++)
{
cin>>t>>x;
a[x].push_back(t);
}
for(i=0;i<maxn;i++)//测试每个id
{
if(f(i))
cout<<i<<endl;
}
return 0;
}