Pagini recente » Cod sursa (job #1741846) | Cod sursa (job #648325) | Cod sursa (job #877518) | Cod sursa (job #1785557) | Cod sursa (job #129534)
Cod sursa(job #129534)
#include <stdio.h>
#include <stdlib.h>
int v[105],v2[1000001],n,s,l;
FILE *in = fopen("loto.in","r");
FILE *out = fopen("loto.out","w");
int cmp(const void *a, const void *b)
{
int *aa=(int*)a, *bb=(int*)b;
int k=*aa, l=*bb;
return (k-l);
}
void afisarethingy(int x)
{
int i,j,k,s2;
for (i=0; i<n; i++)
for (j=i; j<n; j++)
for (k=j; k<n; k++)
if (v[i]+v[j]+v[k]==v2[x])
{
fprintf(out,"%d %d %d",v[i],v[j],v[k]);
return;
}
}
int main()
{
int i,j,k;
fscanf(in,"%d%d",&n,&s);
for (i=0; i<n; i++)
fscanf(in,"%d",&v[i]);
l=0;
for (i=0; i<n; i++)
for (j=i; j<n; j++)
for (k=j; k<n; k++)
{
v2[l]=v[i]+v[j]+v[k];
l++;
}
qsort(v2,l,sizeof(v2[0]),cmp);
j=l-1;
for (i=0; i<l; i++)
{
while (v2[j]+v2[i]>s && j>0)
j--;
if (j>=0)
{
if (v2[i]+v2[j]==s)
{
afisarethingy(i);
fprintf(out," ");
afisarethingy(j);
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}
}
if (j<0)
i=l;
}
fprintf(out,"%d\n",-1);
fclose(in);
fclose(out);
return 0;
}