Pagini recente » Cod sursa (job #751252) | Cod sursa (job #2271681) | Cod sursa (job #195104) | Cod sursa (job #1666038) | Cod sursa (job #1811802)
#include <stdio.h>
#include <stdlib.h>
#define MOD 666019
int nr,v[101],lista[MOD],next[100*100*100+1],a[100*100*100+1],b[100*100*100+1],c[100*100*100+1];
int main()
{
int n,s,i,j,k,x,f;
long long suma,z;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1; i<=n; i++)
scanf("%d",&v[i]);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
{
suma=(long long)v[i]+v[j]+v[k];
if(lista[suma%MOD]==0)
{
nr++;
a[nr]=v[i];
b[nr]=v[j];
c[nr]=v[k];
lista[suma%MOD]=nr;
next[nr]=0;
}
else
{
x=lista[suma%MOD];
while(x!=0 && (long long)a[x]+b[x]+c[x]!=suma)
x=next[x];
if(x==0)
{
nr++;
a[nr]=v[i];
b[nr]=v[j];
c[nr]=v[k];
next[nr]=lista[suma%MOD];
lista[suma%MOD]=nr;
}
}
}
f=1;
for(i=1; i<=n && f; i++)
for(j=1; j<=n && f; j++)
for(k=1; k<=n && f; k++)
{
suma=(long long)v[i]+v[j]+v[k];
z=s-suma;
if(z>0)
{
x=lista[z%MOD];
while(x!=0 && (long long)a[x]+b[x]+c[x]!=z)
x=next[x];
if(x!=0)
{
f=0;
printf("%d %d %d %d %d %d\n",a[x],b[x],c[x],v[i],v[j],v[k]);
}
}
}
if(f==1)
printf("-1\n");
return 0;
}