Cod sursa(job #2743483)

Utilizator Matei1905Matei Neagu Matei1905 Data 23 aprilie 2021 01:41:41
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1.43 kb
        #include <iostream>
        #include <fstream>
        #include <vector>
        #include <unordered_map>
        #include <tuple>

        using namespace std;

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

        int N, S, dif, a, b;
        vector<int> v;
        unordered_map<int, tuple<int, int>> m;

        int main()
        {
            int i, x, s1, s2, j; 
            f >> N >> S;
            tuple<int, int> d(0,0);
            for(i = 1; i <= N; i ++)
            {
                f >> x;
                v.push_back(x);
            }

            for(i = 0; i < N; i++)
                for(j = 0; j < N; j++)
                    m[v[i] + v[j]] = make_tuple(v[i], v[j]);
            
            
            unordered_map<int,tuple<int,int>>::iterator q, r;
            for(q = m.begin(); q != m.end(); q++)
                for(r = m.begin(); r != m.end(); r++)
                {
                    dif = S - q->first - r->first;
                    if(m.find(dif) != m.end())
                    {
                        a = get<0>(m[dif]);
                        b = get<1>(m[dif]);
                        g << get<0>(q->second) << " " << get<1>(q->second) << " " << get<0>(r->second) << " " << get<1>(r->second) << " " << a << " " << b;
                        return 0;
                    }
                }
            g << -1;
            return 0;
        }