Cod sursa(job #179599)
Utilizator | Data | 16 aprilie 2008 09:48:43 | |
---|---|---|---|
Problema | Loto | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.19 kb |
#include <stdio.h>
long n,s,b[128];
long *a=new long[350000];
int main(void)
{
long i,j,k,l,x,y;
FILE *f;
f=fopen("loto.in","rt");
fscanf(f,"%ld %ld",&n,&s);
for(i=0;i<n;i++)
fscanf(f,"%ld",&b[i]);
l=0;
fclose(f);
f=fopen("loto.out","wt");
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=j;k<n;k++)
{
a[l++]=b[i]+b[j]+b[k];
}
k=1;
for(i=0;(i<l)&&k;i++)
for(j=i;(j<l)&&k;j++)
if(s==(a[i]+a[j]))
k=0;
i--;j--;
if(k)
{
fprintf(f,"-1");
fclose(f);
return 0;
}
for(k=0;(i!=-1)||(j!=-1);k++)
for(x=k;(x<n)&&((i!=-1)||(j!=-1));x++)
for(y=x;(y<n)&&((i!=-1)||(j!=-1));y++)
{
if(i!=-1)
if(a[i]==(b[k]+b[x]+y[b]))
{
fprintf(f,"%ld %ld %ld ",b[k],b[x],b[y]);
i=-1;
}
if(j!=-1)
if(a[j]==(b[k]+b[x]+b[y]))
{
fprintf(f,"%ld %ld %ld ",b[k],b[x],b[y]);
j=-1;
}
}
fclose(f);
return 0;
}