Pagini recente » Cod sursa (job #228500) | Cod sursa (job #2721315) | Cod sursa (job #56368) | Cod sursa (job #1852639) | Cod sursa (job #2778035)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int P = 370003;
int n, s, v[105];
bool ok;
vector < int > h[370005];
void read()
{
fin >> n >> s;
for(int i = 1; i <= n; i ++)
{
fin >> v[i];
}
}
void add(int x)
{
int rest = x % P;
if(h[rest].size() == 0 || h[rest][0] != x)
{
h[rest].push_back(x);
}
}
bool exists(int x)
{
int rest = x % P;
for(int i = 0; i < h[rest].size(); i ++)
{
int el = h[rest][i];
if(el == x)
return true;
}
return false;
}
void solve()
{
for(int i = 1; i <= n; i ++)
{
for(int j = i; j <= n; j ++)
{
for(int k = j; k <= n; k ++)
{
int s1 = v[i] + v[j] + v[k];
add(s1);
}
}
}
for(int i = 1; i <= n; i ++)
for(int j = i; j <= n; j ++)
for(int k = j; k <= n; k ++)
{
int s2 = v[i] + v[j] + v[k];
int comp = s - s2;
if(comp > 0 && exists(comp))
{
for(int i2 = 1; i2 <= n; i2 ++)
for(int j2 = i2; j2 <= n; j2 ++)
for(int k2 = j2; k2 <= n; k2 ++)
{
if(v[i2] + v[j2] + v[k2] == comp)
{
fout << v[i] << " ";
fout << v[j] << " ";
fout << v[k] << " ";
fout << v[i2] << " ";
fout << v[j2] << " ";
fout << v[k2] << "\n";
return;
}
}
}
}
fout << -1;
}
int main()
{
read();
solve();
return 0;
}