Pagini recente » Cod sursa (job #3179000) | Cod sursa (job #560478) | Cod sursa (job #1024350) | Cod sursa (job #2762049) | Cod sursa (job #430378)
Cod sursa(job #430378)
#include<iostream>
#include<fstream>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define maxh 666013
long long n,s,a[128];
struct nod{
long long sum;
nod *leg;
};
nod *H[maxh];
void cit()
{long long i;
ifstream fin("loto.in");
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>a[i];
fin.close();
}
void insereaza(int v)
{
int h=v%maxh;
nod *p;
for(p=H[h];p;p=p->leg)
if(p->sum==v)
return;
p=new nod;
p->leg=H[h];
p->sum=v;
H[h]=p;
}
int exista(int v)
{
int h=v%maxh;
nod *p;
for(p=H[h];p;p=p->leg)
if(p->sum==v)
return 1;
return 0;
}
int main()
{long long i,j,k,ii,jj,kk;
cit();
ofstream fout("loto.out");
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
insereaza(a[i]+a[j]+a[k]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
if(exista(s-a[i]-a[j]-a[k])) ////////////////////ALTRO IF
for(ii=1;ii<=n;ii++)
for(jj=ii;jj<=n;jj++)
for(kk=jj;kk<=n;kk++)
if(s-a[i]-a[j]-a[k]-a[ii]-a[jj]-a[kk]==0)
{fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[ii]<<" "<<a[jj]<<" "<<a[kk];
fout<<'\n';
return 0;}
}
fout<<"-1";
fout<<'\n';
fout.close();
return 0;
}