Pagini recente » Cod sursa (job #1218940) | Cod sursa (job #1361267) | Cod sursa (job #2513568) | Cod sursa (job #1019548) | Cod sursa (job #129858)
Cod sursa(job #129858)
#include <stdio.h>
#include <stdlib.h>
long n,s,i,j,k,q,a[100],s3[1000002],ind[1000002],nr1,nr2,nr3;
int comp(const void *n1, const void *n2){
return *(long*)n1-*(long*)n2;
}
int main(){
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%ld %ld",&n,&s);
for (i=1;i<=n;i++)
scanf("%ld",&a[i]);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{q++;ind[q]=q;s3[q]=a[i]+a[j]+a[k];}
qsort(ind,q+1,sizeof(long),comp);
j=q;
for (i=1;i<=q;i++){
while (s3[ind[i]]+s3[ind[j]]>s)j--;
if (!j>0)break;
if (s3[ind[i]]+s3[ind[j]]==s){
k=ind[i];
nr3=k/(n*n);
if (k%(n*n))nr3++;
k=k%(n*n);
nr2=k/n;
if (k%n)nr2++;
if(nr2==0)nr2=n;
k=k%n;
nr1=k;
if (nr1==0)nr1=n;
printf("%ld %ld %ld ",a[nr1],a[nr2],a[nr3]);
k=ind[j];
nr3=k/(n*n);
if (k%(n*n))nr3++;
k=k%(n*n);
nr2=k/n;
if (k%n)nr2++;
if(nr2==0)nr2=n;
k=k%n;
nr1=k;
if (nr1==0)nr1=n;
printf("%ld %ld %ld\n",a[nr1],a[nr2],a[nr3]);
return 0;
}
}
printf("-1\n");
return 0;
}