Cod sursa(job #1562181)

Utilizator karlaKarla Maria karla Data 4 ianuarie 2016 21:13:25
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <bits/stdc++.h>
#include <unordered_map>

using namespace std;

FILE*f=fopen("loto.in","r"),*g=fopen("loto.out","w");

int n, s;
int N[1000009][4];
unordered_map <int, int> X;


void afisare(int x, unordered_map<int, int>::const_iterator y)
{
    fprintf(g, "%d %d %d %d %d %d", N[x][1], N[x][2], N[x][3], N[y->second][1], N[y->second][2], N[y->second][3]);
}



int main()
{
    int V[105];
    fscanf(f, "%d %d", &n, &s);
    for(int i = 1; i <= n; i++)
    {
        fscanf(f, "%d", &V[i]);
    }
    int nr = 0;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            for(int k = 1; k <= n; k++)
            {
                nr++;
                X[V[i]+V[j]+V[k]] = nr;
                N[nr][1] = V[i];
                N[nr][2] = V[j];
                N[nr][3] = V[k];
            }
    unordered_map<int, int>::const_iterator it;
    int h = 0;
    for(int i = 1; i <= n ; i++)
        for(int j = 1; j <= n; j++)
            for(int k = 1; k <= n; k++)
            {
                h++;
                int sum = s - V[i] - V[j] - V[k];
                it = X.find(sum);
                if(it != X.end())
                {
                    afisare(h, it);
                    return 0;
                }
            }
    fprintf(g,"-1");
    return 0;
}