Pagini recente » Cod sursa (job #2926808) | Cod sursa (job #2563929) | Cod sursa (job #2416683) | Cod sursa (job #228922) | Cod sursa (job #2554931)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int K=666013;
int n,i,s,x,rest,v[101],j,k;
struct loto
{
int suma,i1,i2,i3;
};
vector<loto>r[K+1];
bool exista(int rest,int nr)
{
int dim=r[rest].size()-1;
for(int i=0;i<=dim;i++)
if(r[rest][i].suma==nr)
return true;
return false;
}
int main()
{
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
loto sum;
sum.suma=v[i]+v[j]+v[k];
if(sum.suma>s)
continue;
if(exista(sum.suma%K,sum.suma))
continue;
sum.i1=i;
sum.i2=j;
sum.i3=k;
r[sum.suma%K].push_back(sum);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
int sum2=s-v[i]-v[j]-v[k];
if(sum2<0)
continue;
int r2=sum2%K;
int dim=r[r2].size()-1;
for(int l=0;l<=dim;l++)
{
if(r[r2][l].suma==sum2)
{fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[r[r2][l].i1]<<" "<<v[r[r2][l].i2]<<" "<<v[r[r2][l].i3];
return 0;}
}
}
fout<<-1;
return 0;
}