Pagini recente » Cod sursa (job #3000931) | Cod sursa (job #2039160) | Cod sursa (job #3203826) | Cod sursa (job #582345) | Cod sursa (job #129493)
Cod sursa(job #129493)
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
int *aa=(int*)a, *bb=(int*)b;
int k=*aa, l=*bb;
return k-l;
}
int main()
{
int n,s,i,j,k,l,x,y,z,sl;
int v[105];
int v2[1000001];
FILE *in = fopen("loto.in","r");
FILE *out = fopen("loto.out","w");
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);
for (i=0; i<l && sl<2; i++)
{
j=l-1;
while (v2[i]+v2[j]>s && j>0)
j--;
if (j>=0)
if (v2[i]+v2[j]==s)
{
sl=0;
for (x=0; x<n && sl<2; x++)
for (y=x; y<n && sl<2; y++)
for (z=y; z<n && sl<2; z++)
{
if (v2[i]==v[x]+v[y]+v[z])
if (sl==0)
{
fprintf(out,"%d %d %d ",v[x],v[y],v[z]);
sl++;
}
else
if (sl==1)
{
fprintf(out,"%d %d %d\n",v[x],v[y],v[z]);
sl++;
}
if (v2[j]==v[x]+v[y]+v[z])
if (sl==0)
{
fprintf(out,"%d %d %d ",v[x],v[y],v[z]);
sl++;
}
else
if (sl==1)
{
fprintf(out,"%d %d %d\n",v[x],v[y],v[z]);
sl++;
}
}
}
}
fclose(in);
fclose(out);
return 0;
}