Pagini recente » Cod sursa (job #346813) | Cod sursa (job #3306799) | Cod sursa (job #2415368) | Cod sursa (job #346687) | Cod sursa (job #349808)
Cod sursa(job #349808)
#include<stdio.h>
#include<stdlib.h>
#include<fstream.h>
int n,s,a[110],b[1001000];
int cmp(const void *p, const void *q)
{
return ( *(int*)p - *(int*)q );
}
void scrie(int x)
{
int i,j,k;
for (i=1; i<=n; ++i)
for (j=i; j<=n; ++j)
for (k=j; 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()
{
ifstream q("loto.in");
freopen("loto.out","w",stdout);
q>>n>>s;
int i,j,k,l;
for (i=1; i<=n; ++i)
q>>a[i];
l=0;
for (i=1; i<=n; ++i)
for (j=i; j<=n; ++j)
for (k=j; k<=n; ++k)
b[++l]=a[i]+a[j]+a[k];
qsort(b+1,l, sizeof(int),cmp);
k=l;
for (i=1; i<=l && 0<k; ++i)
{
while(b[i]+b[k]>s && k>0) k--;
if (k<=0) break;
if (b[i]+b[k]==s)
{
scrie(i);
scrie(k);
return 0;
}
}
printf("-1\n");
return 0;
}