Pagini recente » Monitorul de evaluare | Cod sursa (job #2804967) | hoata2 | Solutii Winter Challenge 2008 runda 1 | Cod sursa (job #129432)
Cod sursa(job #129432)
#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)
{
++z;
b[z]=a[i]+a[j]+a[k];
}
}
}
qsort(b+1,z, sizeof(int),cmp);
k=z;
for (i=1; i<=z && 0<k; ++i)
{
while(b[i]+b[k]>s && k>0)
{
k--;
}
if (k<=0) break;
if (b[i]+b[k]==k)
{
write(i);
printf(" ");
write(t);
printf("\n");
return 0;
}
}
printf("-1\n");
return 0;
}