Cod sursa(job #1279933)

Utilizator nytr0gennytr0gen nytr0gen Data 1 decembrie 2014 07:41:26
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <cstdio>
#include <unordered_map>
using namespace std;

const char IN_FILE[]  = "loto.in";
const char OUT_FILE[] = "loto.out";

int main() {
    freopen(IN_FILE, "r", stdin);
    freopen(OUT_FILE, "w", stdout);

    int N, S;
    scanf("%d%d", &N, &S);

    int v[100];
    for (int i = 0; i < N; i++)
        scanf("%d", &v[i]);

    struct drum {
        int unu, doi, trei;
    };
    unordered_map<int, drum> sume;

    int temp, i, j, k;
    for (i = 0; i < N; i++)
        for (j = i; j < N; j++)
            for (k = j; k < N; k++) {
                temp = v[i] + v[j] + v[k];
                if (temp < S) {
                    sume[temp] = {v[i], v[j], v[k]};
                }
            }

    for (auto it: sume) {
        temp = S - it.first;
        if (sume.count(temp) > 0) {
            printf("%d %d %d %d %d %d",
                   it.second.unu,
                   it.second.doi,
                   it.second.trei,
                   sume[temp].unu,
                   sume[temp].doi,
                   sume[temp].trei
            );

            return 0;
        }
    }

    printf("%d", -1);


    return 0;
}