Pagini recente » Cod sursa (job #2491949) | Cod sursa (job #2420160) | Cod sursa (job #351651) | Cod sursa (job #1323968) | Cod sursa (job #1522580)
#include <cstdio>
#define MAXN 100
#define MOD 666013
int v[MAXN],ind[MOD+1],next[MAXN*MAXN*MAXN+1],sum[MAXN*MAXN*MAXN+1];
int main(){
FILE*fi,*fout;
int i,j,z,nr1,nr2,nr3,nr4,nr5,nr6,flag,s1,s2,n,s,con;
fi=fopen("loto.in" ,"r");
fout=fopen("loto.out" ,"w");
fscanf(fi,"%d%d" ,&n,&s);
for(i=0;i<n;i++)
fscanf(fi,"%d" ,&v[i]);
con=0;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(z=j;z<n;z++){
con++;
sum[con]=v[i]+v[j]+v[z];
next[con]=ind[sum[con]];
ind[sum[con]%MOD]=con;
}
flag=1;
i=MOD-1;
while(i>=0&&flag){
j=ind[i];
while(j>0&&flag){
z=ind[(s%MOD-i%MOD+MOD)%MOD];
while(z>0&&flag){
if(sum[z]+sum[j]==s){
flag=0;
s1=sum[z];
s2=sum[j];
}
z=next[z];
}
j=next[j];
}
i--;
}
if(i==-1)
fprintf(fout,"-1");
else{
i=0;
while(i<n){
j=i;
while(j<n){
z=j;
while(z<n&&v[i]+v[j]+v[z]!=s1)
z++;
if(z<n){
nr1=v[i];
nr2=v[j];
nr3=v[z];
}
z=j;
while(z<n&&v[i]+v[j]+v[z]!=s2)
z++;
if(z<n){
nr4=v[i];
nr5=v[j];
nr6=v[z];
}
j++;
}
i++;
}
fprintf(fout,"%d %d %d %d %d %d" ,nr1,nr2,nr3,nr4,nr5,nr6);
}
fclose(fi);
fclose(fout);
return 0;
}