Pagini recente » Cod sursa (job #979079) | Cod sursa (job #663376) | Cod sursa (job #1087564) | Cod sursa (job #92340) | Cod sursa (job #129431)
Cod sursa(job #129431)
#include <stdio.h>
#include <stdlib.h>
int n,s,a[110],b[1001000],z;
int cmp(const void *a, const void *b)
{
return ( *(int*)a - *(int*)b );
}
void write(int x)
{
int i,j,k;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
{
for (k=1; k<=n; ++k)
{
if (a[i]+a[j]+a[k]==b[x])
{
printf("%d %d %d",a[i],a[j],a[k]);
return;
}
}
}
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
int i,j,k;
for (i=1; i<=n; ++i) scanf("%d",&a[i]);
z=0;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
{
for (k=1; k<=n; ++k)
{
b[z++]=a[i]+a[j]+a[k];
}
}
}
qsort(b,z, sizeof(int),cmp);
k=z-1;
for (i=1; i<z && k>=0; ++i)
{
while(b[i]+b[k]>s && k>=0)
{
k--;
}
if (k<0) break;
if (b[i]+b[s]==s)
{
write(i);
printf(" ");
write(s);
printf("\n");
return 0;
}
}
printf("-1\n");
return 0;
}