思路
首先得知道个性质,即若 $a \bmod b = c \bmod b$,那么 $(a-c) \bmod b =0$,因为余数在 $(a-c)$ 中被减掉了。
于是我们可以把所有余数相同的 $a_i$ 丢进一个 vector 里,之后再看余数相同的 $a_i$ 的数量有没有 $\ge k$,有的话就输出前 $k$ 个数,没有就输出 No。
代码
#include<bits/stdc++.h>
using namespace std;
int n,k,m,ans,id;
vector<int> y[100005];
int main(){
ios::sync_with_stdio(false);
cin.tie(),cout.tie();
cin>>n>>k>>m;
for(int x,i=1;i<=n;i++)
cin>>x,y[x%m].push_back(x);
for(int i=0;i<m;i++){
if(y[i].size()>=k){
cout<<"Yes"<<endl;
for(int j=0;j<k;j++)
cout<<y[i][j]<<" ";
return 0;
}
}
cout<<"No";
return 0;
}
标签:cout,int,bmod,Divisiblity,余数,Difference
From: https://www.cnblogs.com/WuMin4/p/18371951