Pagini recente » Cod sursa (job #2309975) | Cod sursa (job #1620013) | Cod sursa (job #2899220) | Cod sursa (job #437376) | Cod sursa (job #2276338)
#include<cstdio>
#include<fstream>
#include<vector>
#define MOD 666013
using namespace std;
ofstream g("loto.out");
int v[102],i1,i2,i3;
struct elem
{
int x,a,b,c;
};
vector<elem>h[666015];
void adauga(int x)
{
int y,n,i,ok=0;
y=x%MOD;
n=h[y].size();
for(i=0; i<n; i++)
if(h[y][i].x==x)
{
ok=1;
break;
}
if(ok==0)
h[y].push_back({x,i1,i2,i3});
}
int cauta(int x)
{
int y,n,i;
y=x%MOD;
n=h[y].size();
for(i=0; i<n; i++)
if(h[y][i].x==x)
{
g<<v[h[y][i].a]<<" "<<v[h[y][i].b]<<" "<<v[h[y][i].c]<<" "<<v[i1]<<" "<<v[i2]<<" "<<v[i3];
return 1;
}
return 0;
}
int main()
{
freopen("loto.in","r",stdin);
int n,s,sol=0,i;
scanf("%d%d",&n,&s);
for(i=1; i<=n; i++)
scanf("%d",&v[i]);
for(i1=1; i1<=n; i1++)
for(i2=1; i2<=n; i2++)
for(i3=1; i3<=n; i3++)
adauga(v[i1]+v[i2]+v[i3]);
for(i1=1; i1<=n&&sol==0; i1++)
for(i2=1; i2<=n&&sol==0; i2++)
for(i3=1; i3<=n&&sol==0; i3++)
if(s-(v[i1]+v[i2]+v[i3])>=0)
sol+=cauta(s-(v[i1]+v[i2]+v[i3]));
if(!sol)
g<<-1;
return 0;
}