Pagini recente » Cod sursa (job #1009426) | Cod sursa (job #2273677) | Cod sursa (job #507530) | Cod sursa (job #1669582) | Cod sursa (job #811669)
Cod sursa(job #811669)
#include<fstream>
#define mod 666013
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long long s,s2,s3,v[100];
struct nod
{
int inf;
char s[7];
nod *next;
};
typedef nod *lista;
lista l[666014];
int main()
{
int n,i,j,k;
fin>>n;
fin>>s;
for(i=0;i<n;i++)
fin>>v[i];
for(i=0;i<666013;i++)
l[i]=NULL;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
{
s2=v[i]+v[j]+v[k];
lista p;
s3=s-s2;
int ok=0;
if(s3>0)for(p=l[s3%mod];p&&!ok;p=p->next)
if(p->inf==s3)
{
int nr;
fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
nr=(int)(p->s[0]);
nr*=10;
nr+=(int)(p->s[1]);
fout<<v[nr]<<" ";
nr=(int)(p->s[2]);
nr*=10;
nr+=(int)(p->s[3]);
fout<<v[nr]<<" ";
nr=(int)(p->s[4]);
nr*=10;
nr+=(int)(p->s[5]);
fout<<v[nr]<<" ";
i=n+2;
j=n+2;
k=n+2;ok=1;
}
if(!ok)
{
for(p=l[s2%mod];p&&!ok;p=p->next)
if(p->inf==s2)ok=1;
if(!ok)
{
lista aux;
aux=new nod;
aux->inf=s2;
aux->s[0]=(char)(i/10);
aux->s[1]=(char)(i%10);
aux->s[2]=(char)(j/10);
aux->s[3]=(char)(j%10);
aux->s[4]=(char)(k/10);
aux->s[5]=(char)(k%10);
aux->next=l[s2%mod];
l[s2%mod]=aux;
}
}
}
if(i!=n+3)fout<<-1;
return 0;
}