Cod sursa(job #2787607)

Utilizator db_123Balaban David db_123 Data 23 octombrie 2021 19:04:31
Problema Loto Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <fstream>
#include <algorithm>
#include <map>

using namespace std;

ifstream cin("loto.in");
ofstream cout("loto.out");

int   n,sum;
int   v[101];

struct grup3
{
    int nr1;
    int nr2;
    int nr3;
};

multimap<int,grup3> grupuri;
multimap<int,grup3>::iterator it,itSearch;

int main()
{
    cin>>n>>sum;
    for(int i =0 ; i < n ; i++)
        cin>>v[i];

    sort(v,v+n);

//    for(int i = 0 ; ++i < n;)
//    {
//        for(int j = i-1 ; ++j < n ;   )
//        {
//            for(int k = j-1; ++k < n ;)
//            {
//                cout << i << " "<< j << " " << k << endl;
//            }
//        }
//    }
//    return 0;

    /// generate all 3 number combinations
    grup3 gr;
    for(int i = 0 ; i < n;i++)
    {
        for(int j = i ; j < n ;j++   )
        {
            for(int k = j; k < n ;k++)
            {
                gr.nr1 = v[i];
                gr.nr2 = v[j];
                gr.nr3 = v[k];
                grupuri.insert({gr.nr1 + gr.nr2 + gr.nr3,gr});
            }
        }
    }

    for(it = grupuri.begin(); it != grupuri.end();it++)
    {
        int sumaGrup = it->first;
        itSearch     = grupuri.find(sum-sumaGrup);

        if(itSearch != grupuri.end())
        {
            cout << it->second.nr1 << " "<< it->second.nr2 << " "<< it->second.nr3 << " ";
            cout << itSearch->second.nr1 << " "<< itSearch->second.nr2 << " "<< itSearch->second.nr3 ;

            return 0;
        }
    }

    cout << "-1";
    return 0 ;

}