Cod sursa(job #1923639)

Utilizator bt.panteaPantea Beniamin bt.pantea Data 11 martie 2017 20:05:54
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#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;
}