Pagini recente » Cod sursa (job #354749) | Cod sursa (job #2186735) | Cod sursa (job #181436) | Cod sursa (job #1254702) | Cod sursa (job #2899305)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int P=370003;
bool ok;
int n,s,m;
int v[105];
int sol[7];
vector <int> h[370005];
void read()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
}
void precalc()
{
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
for(int k=j;k<=n;k++)
{
int s=v[i]+v[j]+v[k];
h[s%P].push_back(s);
}
}
}
}
bool verif(int x)
{
int mod=x%P;
for(int i=0;i<h[mod].size();i++)
{
if(x==h[mod][i])
{
return true;
}
}
return false;
}
void solve()
{
for(int i=1;i<=n && !ok;i++)
{
for(int j=i;j<=n && !ok;j++)
{
for(int k=j;k<=n && !ok;k++)
{
int s=v[i]+v[j]+v[k];
int comp=m-s;
if(comp>0 && verif(comp))
{
sol[1]=v[i];
sol[2]=v[j];
sol[3]=v[k];
ok=true;
for(int ii=1;ii<=n;ii++)
{
for(int jj=ii;jj<=n;jj++)
{
for(int kk=jj;kk<=n;kk++)
{
if((v[ii]+v[jj]+v[kk])==comp)
{
sol[4]=v[ii];
sol[5]=v[jj];
sol[6]=v[kk];
return;
}
}
}
}
}
}
}
}
}
int main()
{
read();
precalc();
solve();
if(ok)
{
for(int i=1;i<=6;i++)
{
fout<<sol[i]<<" ";
}
}
else
{
fout<<-1;
}
return 0;
}