Cod sursa(job #3128583)

Utilizator TirilaPatricTirila Patric-Gabriel TirilaPatric Data 9 mai 2023 23:56:00
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;


int main()
{
    ifstream f("loto.in");
    ofstream g("loto.out");

    unordered_map <int, vector<int>> ht;
    int n, s;

    f>>n>>s;
    int A[n+1];

    for(int i=1; i<=n; i++)
        f>>A[i];

    for(int i=1; i<=n; i++)
        for(int j=i; j<=n; j++)
            for(int k=j; k<=n; k++) {
                vector<int> p2 = {A[i], A[j], A[k]};
                ht[s-(A[i] + A[j] + A[k])] = p2;
            }
    bool ok = 0;
    for(int i=1; i<=n; i++) {
        for (int j = i; j <= n; j++) {
            int sum1 = A[i]+A[j];
            for (int k = j; k <= n; k++) {
                int sum = sum1+A[k]-1;
                if (ht.find(sum) != ht.end()) {
                    g << A[i] << " " << A[j] << " " << A[k] << " " << ht[sum][0] << " " << ht[sum][1] << " "
                      << ht[sum][2] << endl;
                    ok = 1;
                    break;
                }
            }
            if(ok) break;
        }
        if(ok) break;
    }
    if(!ok){
        g<<-1;
    }
    f.close();
    g.close();

    //    unordered_map<int, pair<int, int>> ht;
//    int n, s;
//    f>>n>>s;
//    int A[n+1];
//
//    for(int i=1; i<=n; i++)
//        for(int j=i; j<=n; j++) {
//            pair<int, int> p2 = make_pair(A[i], A[j]);
//            ht[A[i] + A[j]] = p2;
//        }
//
//    for(int i=1; i<=n; i++) {
//        for (int j = i; j <= n; j++) {
//            int dif1 = s - (A[i] + A[j]);
//            if(ht.find(dif1) != ht.end()){
//
//            }
//        }
//    }


    return 0;
}