Cod sursa(job #1419091)

Utilizator crysstyanIacob Paul Cristian crysstyan Data 14 aprilie 2015 18:23:41
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <unordered_map>
#define NMAX 101

using namespace std;

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

int v[NMAX], i, j, k, n, x, y, z, s;

struct loto
{
    int unu, doi, trei;
};

unordered_map <int, loto> m;

int main()
{
    f>>n>>s;
    for (i=1; i<=n; ++i)
        f>>v[i];

    for (i=1; i<=n; ++i)
        for (j=1; j<=n; ++j)
        for (k=1; k<=n; ++k)
    {
        loto alfa;
        alfa.unu=v[i];
        alfa.doi=v[j];
        alfa.trei=v[k];
        m[v[i]+v[j]+v[k]]=alfa;
    }

    bool gasit=0;

    for (i=1; i<=n; ++i)
        for (j=1; j<=n; ++j)
        for (k=1; k<=n; ++k)
        if (m.find(s-v[i]-v[j]-v[k]) != m.end() )
    {
        g<<m[v[i]+v[j]+v[k]].unu<<" "<<m[v[i]+v[j]+v[k]].doi<<" "<<m[v[i]+v[j]+v[k]].trei<<" "<<m[s-(v[i]+v[j]+v[k])].unu<<" "<<m[s-(v[i]+v[j]+v[k])].doi<<" "<<m[s-(v[i]+v[j]+v[k])].trei<<'\n';
        gasit=1;
        return 0;
    }

    if (!gasit) g<<"-1\n";
    return 0;
}