Cod sursa(job #1470019)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 10 august 2015 11:15:32
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
/*http://www.infoarena.ro/problema/loto*/
#include <fstream>
#include <algorithm>
#include <map>
#include <tuple>
#include <unordered_map>
using namespace std;
int main()
{
    int n, S, v[102], s3;
    short i, j, k;
    bool ok = false;
    unordered_map<int, tuple<short, short, short> > mymap;
    ifstream f("loto.in");
    ofstream g("loto.out");
    f >> n >> S;
    for(i=0; i<n; ++i)
        f >>  v[i];
    sort(v, v+n);
    s3 = v[0] + v[1] + v[2];
    for(i=0; i<n; ++i)
        for(j=i; j<n; ++j)
            for(k=j; k<n; ++k)
                    mymap.insert(make_pair(v[i]+v[j]+v[k], make_tuple(i,j,k)));
    for(i=0; i<n && !ok; ++i)
        for(j=0; j<n && !ok; ++j)
            for(k=0; k<n && !ok; ++k)
            {
                int tmp = v[i]+v[j]+v[k];
                auto it = mymap.find(S-tmp);
                if(it != mymap.end())
                {
                    g << v[i] << " " << v[j] << " " << v[k] << " " << v[get<0>(it->second)]<< " " << v[get<1>(it->second)] << " " << v[get<2>(it->second)];
                    ok = true;
                }
            }
    if(!ok) g << -1 << endl;
    f.close();
    g.close();
    return 0;
}