Pagini recente » Cod sursa (job #2741702) | Cod sursa (job #1650662) | Cod sursa (job #2317733) | Cod sursa (job #720358) | Cod sursa (job #2276339)
#include<cstdio>
#include<fstream>
#include<vector>
#define MOD 666013
using namespace std;
FILE *f=fopen("loto.in","r");
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()
{
int n,s,sol=0,i;
fscanf(f,"%d%d",&n,&s);
for(i=1;i<=n;i++)
fscanf(f,"%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==0)
g<<-1;
return 0;
}