Cod sursa(job #1302852)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 27 decembrie 2014 13:48:35
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#undef __STRICT_ANSI__
#include <fstream>
#include <unordered_map>

using namespace std;

ifstream fin ("loto.in");
ofstream fout ("loto.out");

struct triple
{
    int x,y,z;
};

triple make_triple (int x, int y, int z)
{
    triple t;
    t.x = x;
    t.y = y;
    t.z = z;
    return t;
}

unordered_map <int,triple> M;
int n,S,v[101];

int main()
{
    fin>>n>>S;

    for (int i=1; i <= n; ++i)
    {
        fin>>v[i];
    }

    for (int i=1; i<=n; ++i)
    {
        for (int j=1; j<=n; ++j)
        {
            for (int k=1; k<=n; ++k)
            {
                int s = v[i] + v[j] + v[k];

                M[s] = make_triple (v[i],v[j],v[k]);

                if (M.find(S-s) != M.end())
                {
                    fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<M[S-s].x<<" "<<M[S-s].y<<" "<<M[S-s].z;
                    return 0;
                }
            }
        }
    }

    fout<<-1;
}