Cod sursa(job #2519817)

Utilizator vlad082002Ciocoiu Vlad vlad082002 Data 8 ianuarie 2020 14:40:39
Problema Loto Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <vector>
#include <map>
using namespace std;

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

int v[128], n, s;
bool found;
map<int, pair<int, int> > m;
vector <int> sums;

void citire() {
    fin >> n >> s;
    for(int i = 1; i <= n; i++)
        fin >> v[i];
}

void solve() {
    for(int i = 1; i<= n; i++)
        for(int j = 1; j <= n; j++) {
            //if(m.find(v[i]+v[j]) == m.end()) {
                m[v[i]+v[j]] = {v[i], v[j]};
                sums.push_back(v[i]+v[j]);
            }

    int l = sums.size();
    for(int a = 0; a < l; a++)
        for(int b = 0; b < l; b++)
            for(int c = 0; c < l; c++)
                if(sums[a]+sums[b]+sums[c] == s) {
                    found = true;
                    fout << m[sums[a]].first << ' ' << m[sums[a]].second << ' ' << m[sums[b]].first << ' ' << m[sums[b]].second << ' ' << m[sums[c]].first << ' ' << m[sums[c]].second;
                    return;
                }
}


int main() {
    citire();
    solve();
    if (!found) fout << -1;
}