Pagini recente » Cod sursa (job #317418) | Cod sursa (job #1821174) | Cod sursa (job #41768) | Cod sursa (job #43643) | Cod sursa (job #1452247)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int MOD = 1117;
const int NSIZE = 100 + 10;
int x[NSIZE];
vector < pair < pair < int , int > , pair < int , int > > > iH[MOD];
int i , j , k , ii , jj , kk , crt , s , N;
void inH(int i,int j,int k)
{
int crt = x[i] + x[j] + x[k];
int line = crt % MOD;
iH[line].push_back(make_pair(make_pair(crt,i),make_pair(j,k)));
}
bool findH(int s)
{
int line = s % MOD;
for (int i = 0 ; i < iH[line].size() ; ++i)
if (iH[line][i].first.first == s)
{
ii = iH[line][i].first.second;
jj = iH[line][i].second.first;
kk = iH[line][i].second.second;
return 1;
}
return 0;
}
int main()
{
fin >> N >> s;
for (i = 1 ; i <= N ; ++i)
fin >> x[i];
for (i = 1 ; i <= N ; ++i)
for (j = 1 ; j <= N ; ++j)
for (k = 1 ; k <= N ; ++k)
inH(i,j,k);
for (i = 1 ; i <= N ; ++i)
for (j = 1 ; j <= N ; ++j)
for (k = 1 ; k <= N ; ++k)
{
crt = x[i] + x[j] + x[k];
if (findH(s - crt))
{
fout << x[i] << " ";
fout << x[j] << " ";
fout << x[k] << " ";
fout << x[ii] << " ";
fout << x[jj] << " ";
fout << x[kk] << '\n';
return 0;
}
}
fout << "-1" << '\n';
return 0;
}