codeforces 876B Divisiblity of Differences

来源:互联网 发布:淘宝支付宝登陆界面 编辑:程序博客网 时间:2024/05/21 17:42

http://codeforces.com/problemset/problem/876/B




给出一串数,找出k个数,这k个数之间两两相减的差必须都要对m取余为0。
关键点就是,这样的k个数每个对m取余的结果都相同,根据这个点就好做了。






#include<bits/stdc++.h>using namespace std;int main(){int n,k,m;     while(cin>>n>>k>>m)     {     int nu[111111];     int a[111111];     int i;     memset(nu,0,sizeof(nu));     for(i=0;i<n;i++)     {scanf("%d",&a[i]);     nu[a[i]%m]++;     } int s; int ma=-1; for(i=0;i<m;i++) { if(nu[i]>ma) { ma=nu[i]; s=i; } } int js=0;  int q=0; if(ma<k){ cout<<"No"<<endl; continue; }cout<<"Yes"<<endl; for(i=0;i<n;i++) {     if(js==k)break;     if(a[i]%m==s)     {     if(q++)cout<<" ";     cout<<a[i];     js++; } } cout<<endl;  }return 0;} 


阅读全文
0 0
原创粉丝点击