Cod sursa(job #2789055)

Utilizator keluIon Ionel kelu Data 26 octombrie 2021 20:31:11
Problema Loto Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <vector>
#include <algorithm>
#include <unordered_map>
#include <tuple>

using namespace std;

#if TEST
    #include <fstream>
    ifstream cin("test.in");
    ofstream cout("test.out");
#else
    #include <fstream>
    ifstream cin("loto.in");
    ofstream cout("loto.out");
#endif


int main()
{   
    int n,s;
    
    cin>>n>>s;

    vector<int> a(n);

    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }

    unordered_map<int,tuple<int,int,int> > m;
    m.reserve(n*n*n);
    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            for(int k=0;k<n;k++)
            {
                m[ a[i] + a[j] + a[k] ] = make_tuple(a[i], a[j], a[k]);
            }
        }
    }

    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            for(int k=0;k<n;k++)
            {
                int diff = s - a[i] - a[j] - a[k];
                if (m.count(diff))
                {
                    tuple<int,int,int> v = m[diff];                    
                    cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<get<0>(v)<<" "<<get<1>(v)<<" "<<get<2>(v);
                    return 0;
                }
            }
        }
    }

    cout<<"-1"; //not found
    return 0;
}