Pagini recente » Cod sursa (job #1839396) | Cod sursa (job #880066) | Cod sursa (job #1792794) | Cod sursa (job #1837291) | Cod sursa (job #1452263)
#include <fstream>
#include <bitset>
#include <iostream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int VSIZE = 600000000 + 10;
const int NSIZE = 100000 + 10;
int x[NSIZE];
bitset < VSIZE > iH;
int i , j , k , exist , s , N;
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)
iH[x[i] + x[j] + x[k]] = true;
exist = -1;
for (i = 1 ; i <= N ; ++i)
for (j = 1 ; j <= N ; ++j)
for (k = 1 ; k <= N ; ++k)
if (x[i] + x[j] + x[k] <= s && iH[s - x[i] - x[j] - x[k]])
{
exist = x[i] + x[j] + x[k];
i = j = k = N + 1;
}
if (exist == -1)
{
fout << "-1" << '\n';
return 0;
}
for (i = 1 ; i <= N ; ++i)
for (j = 1 ; j <= N ; ++j)
for (k = 1 ; k <= N ; ++k)
if (x[i] + x[j] + x[k] == exist)
{
fout << x[i] << " ";
fout << x[j] << " ";
fout << x[k] << " ";
i = j = k = N + 1;
}
for (i = 1 ; i <= N ; ++i)
for (j = 1 ; j <= N ; ++j)
for (k = 1 ; k <= N ; ++k)
if (x[i] + x[j] + x[k] == s - exist)
{
fout << x[i] << " ";
fout << x[j] << " ";
fout << x[k] << '\n';
return 0;
}
return 0;
}