Pagini recente » Cod sursa (job #2829057) | Cod sursa (job #159861) | Cod sursa (job #362175) | Cod sursa (job #906379) | Cod sursa (job #1923639)
#include <iostream>
#include <fstream>
#include <bitset>
#include <vector>
#define LMAX 100000005
#define NMAX 101
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
bitset < 3 * LMAX > b3;
bitset < 2 * LMAX > b2;
bitset < LMAX > b1;
int n, s, v[NMAX];
struct el
{
int val;
short a, b, c;
}aux;
vector < el > a;
int main()
{
f>>n>>s;
for (int i = 1; i <= n; i++)
{
f>>v[i];
b1[v[i]] = 1;
aux.a = i;
for (int j = 1; j <= i; j++)
{
int q = v[i] + v[j];
b2[q] = 1;
aux.b = j;
for (int z = 1; z <= j; z++)
{
aux.val = q + v[z];
b3[aux.val] = 1;
aux.c = z;
a.push_back(aux);
}
}
}
for (int i = 0; i < a.size(); i++)
if (b3[s - a[i].val])
{
aux = a[i];
int dif = s - a[i].val;
for (int i = 1; i <= n; i++)
if (b2[dif - v[i]])
for (int j = 1; j <= n; j++)
if (b1[dif - v[i] - v[j]])
{
g<<aux.a<<' '<<aux.b<<' '<<aux.c<<' '<<v[i]<<' '<<v[j]<<' '<<dif - v[i] - v[j];
return 0;
}
}
g<<-1;
return 0;
}