Pagini recente » Cod sursa (job #74588) | Cod sursa (job #989641) | Cod sursa (job #1809042) | Cod sursa (job #714244) | Cod sursa (job #112146)
Cod sursa(job #112146)
#include <stdio.h>
#include <stdlib.h>
struct ceva
{
int v,a,b,c;
};
int a[102];
ceva b[1000000];
int compare( const void* a, const void* b ) {
ceva *aa = (ceva*) a;
ceva *bb = (ceva*) b;
if( aa->v < bb->v ) return -1;
if( aa->v > bb->v ) return 1;
return 0;
}
int main()
{
FILE *in,*out;
int n,s,i,j,nr,k;
in=fopen("loto.in","r");
out=fopen("loto.out","w");
fscanf(in,"%d%d",&n,&s);
for (i=1;i<=n;i++)
fscanf(in,"%d",&a[i]);
nr=-1;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
nr++;
b[nr].v=a[i]+a[j]+a[k];
b[nr].a=a[i];
b[nr].b=a[j];
b[nr].c=a[k];
}
qsort(b,nr+1,sizeof(b[0]),compare);
i=0;
j=nr;
while (i<=j)
{
if (b[i].v+b[j].v==s)
{
fprintf(out,"%d %d %d %d %d %d\n",b[i].a,b[i].b,b[i].c,b[j].a,b[j].b,b[j].c);
fclose(in);
fclose(out);
return 0;
}
if (b[i].v+b[j].v>s)
j--;
else
i++;
}
fprintf(out,"-1\n");
fclose(in);
fclose(out);
return 0;
}