因为每两个数mod m都相等,就把他们都存进mod m值的数组中,算法就是哈希。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
const int maxn=100007;
using namespace std;
int n,k,m;
vector<int> v[maxn];
int main()
{
cin>>n>>k>>m;
int a;
for(int i=0;i<n;i++)
{
cin>>a;
v[a%m].push_back(a);
if(v[a%m].size()==k)
{
cout<<"Yes"<<endl;
for(int j=0;j<v[a%m].size();j++)
{
cout<<v[a%m][j]<<" ";
}
cout<<endl;
return 0;
}
}
cout<<"No"<<endl;
}