Cod sursa(job #3129215)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 13 mai 2023 14:10:31
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.61 kb
//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <cstring>
#include <queue>
#include <map>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
#include <iostream>
#include <fstream>
#include <array>

using namespace std;

typedef long long ll;

//VARIABLES

unordered_map<ll, vector<ll>> sp;
ll n, s;
ll v[105];

//FUNCTIONS



//MAIN
int main() {

#ifdef INFOARENA
    ifstream fin("loto.in"); ofstream fout("loto.out");
    cin.rdbuf(fin.rdbuf()); cout.rdbuf(fout.rdbuf()); 
#endif

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

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            for (int k = 1; k <= n; k++) {
                sp[v[i] + v[j] + v[k]]= { v[i],v[j],v[k] };
            }
        }
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            for (int k = 1; k <= n; k++) {
                ll sum2 = v[i] + v[j] + v[k];
                ll sum1 = s - sum2;
                if (sp.find(sum1) != sp.end()) {
                    // am gasit solutia
                    vector <ll> sp1 = sp[sum1];
                    cout << sp1[0] << " " << sp1[1] << " " << sp1[2] << " " << v[i] << " " << v[j] << " " << v[k];
                    return 0;
                }
            }
        }
    }

    cout << "-1";

    return 0;
}