题目链接:http://codeforces.com/contest/876
反思:唉,唉,为什么人家hack了你,你非得hack别人呢?手贱,明明三个题都能稳稳到手,捡了芝麻,丢了西瓜。
代码如下:
A题:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
int n,a,b,c;
int mi;
while(~scanf("%d",&n))
{
scanf("%d%d%d",&a,&b,&c);
mi=min(a,min(b,c));
if(n==1)
printf("0\n");
else if(n==2)
printf("%d\n",min(a,b));
else
{
printf("%d\n",min(a,b)+(n-2)*mi);
}
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include<cmath>
#include <vector>
using namespace std;
int n,k,m;
int vi[100005];
int a[100005];
int flag;
void Print(int x)
{
flag=1;
int cnt=0;
printf("Yes\n");
for(int i=0;i<n && cnt<k;i++)
{
if(a[i]%m==x)
{
if(i) printf(" ");
printf("%d",a[i]);
cnt++;
}
}
printf("\n");
}
int main()
{
while(~scanf("%d%d%d",&n,&k,&m))
{
int x;
flag=0;
memset(vi,0,sizeof(vi));
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
vi[a[i]%m]++;
}
for(int i=0;i<100002;i++)
if(vi[i]>=k){
Print(i);
break;
}
if(!flag)
printf("No\n");
}
return 0;
}
C题:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include<cmath>
#include <vector>
using namespace std;
int da[100];
int fin(int x,int sum)
{
int tem=0;
while(x)
{
tem+=x%10;
x/=10;
}
if(tem==sum)
return 1;
else
return 0;
}
int main()
{
int n;
int inde;
while(~scanf("%d",&n))
{
inde=0;
for(int i=81;i>=0;i--)
{
if(fin(n-i,i))
da[inde++]=n-i;
}
printf("%d\n",inde);
for(int i=0;i<inde;i++)
printf("%d\n",da[i]);
}
return 0;
}