Cod sursa(job #1426914)

Utilizator greenadexIulia Harasim greenadex Data 30 aprilie 2015 22:50:12
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

struct trio {
    int nr1, nr2, nr3;
};

unordered_map <int, trio> sums;
vector <int> numbers;

int N, S;

int main() {
    fin >> N >> S;
    for (int i = 1, nr; i <= N; i++) {
        fin >> nr;
        numbers.push_back(nr);
    }
    for (auto x : numbers)
        for (auto y : numbers)
            for (auto z : numbers) {
                int sum = x + y + z;
                if (sum <= S) {
                    trio trioo;
                    trioo.nr1 = x;
                    trioo.nr2 = y;
                    trioo.nr3 = z;
                    sums[sum] = trioo;
                }
            }

    for (auto x : numbers)
        for (auto y : numbers)
            for (auto z : numbers) {
                int sum = x + y + z;
                if (sums.count(sum) && sums.count(S - sum)){
                    fout << x << ' ' << y << ' ' << z << ' '
                         << sums[S - sum].nr1 << ' ' << sums[S - sum].nr2  << ' ' << sums[S - sum].nr3;
                    return 0;
                }
            }

    fout << -1;
    return 0;
}