Cod sursa(job #1991607)

Utilizator leraValeria lera Data 17 iunie 2017 16:04:49
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <bits/stdc++.h>
#include <fstream>
#include <vector>
#define Nmax 105
#include <map>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");

unordered_map<int, bool>m;
int N, S, x;
vector<int>a;
int main()
{
    fin >> N >> S;
    for(int i = 1; i <= N; i++) fin >> x, a.push_back(x);
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            for(int q = 1; q <= N; q++)
                m[a[i - 1] + a[j - 1] + a[q - 1]]=1;
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            for(int q = 1; q <= N; q++)
                if(m[S - a[i - 1] - a[j - 1] - a[q - 1]] == 1)
                {
                    S = S - a[i - 1] - a[j - 1] - a[q - 1];
                    fout << a[i - 1] << " " << a[j - 1] << " " << a[q - 1] << " ";
                    for(int i = 1; i <= N; i++)
                        for(int j = 1; j <= N; j++)
                            for(int q = 1; q <= N; q++)
                                if(S == a[i - 1] + a[j - 1] + a[q - 1])
                                {
                                    fout << a[i - 1] << " " << a[j - 1] << " " << a[q - 1] << " ";
                                    return 0;
                                }
                }
    fout << -1;

    return 0;
}