Pagini recente » Cod sursa (job #1274938) | Cod sursa (job #2943338) | Cod sursa (job #2969265) | Cod sursa (job #1482291) | Cod sursa (job #568069)
Cod sursa(job #568069)
#include <stdio.h>
#define MOD 999983
#define Dim 105
struct hash
{
long i1,i2,i3;
hash *link;
}*H[MOD+5];
long v[Dim];
void add(long a,long b,long c,long x)
{
hash *p;
p=new hash;
p->i1=a;
p->i2=b;
p->i3=c;
p->link=H[x];
H[x]=p;
}
int main()
{
long x,S,N,i,j,k;
hash *p;
freopen("loto.in","r",stdin);
scanf("%ld%ld",&N,&S);
for(i=1;i<=N;i++) scanf("%ld",&v[i]);
for(i=1;i<=N;i++)
for(j=i;j<=N;j++)
for(k=j;k<=N;k++)
{
x=v[i]+v[j]+v[k];
add(v[i],v[j],v[k],x%MOD);
}
freopen("loto.out","w",stdout);
for(i=1;i<=N;i++)
for(j=i;j<=N;j++)
for(k=j;k<=N;k++)
{
x=v[i]+v[j]+v[k];
if(x<=S)
{
p=H[(S-x)%MOD];
while(p)
{
if(p->i1+p->i2+p->i3==S-x)
{
printf("%ld %ld %ld %ld %ld %ld\n",v[i],v[j],v[k],p->i1,p->i2,p->i3);
return 0;
}
p=p->link;
}
}
}
printf("-1\n");
return 0;
}