Cod sursa(job #1307318)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 1 ianuarie 2015 22:39:35
Problema Loto Scor 85
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1.37 kb
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;

int main()
{
    int N, S, i, j, k;

    ifstream f("loto.in");
    f >> N >> S;
    int a[N + 1];
    for (i = 1; i <= N; i++)
        f >> a[i];
    f.close();

    unordered_map<int, vector<int>> map;
    int sum;
    vector<int> numbers(3);
    for (i = 1; i <= N; i++)
        for (j = i; j <= N; j++)
            for (k = j; k <= N; k++)
            {
                sum = a[i] + a[j] + a[k];
                if (!map[sum].size())
                {
                    numbers[0] = a[i];
                    numbers[1] = a[j];
                    numbers[2] = a[k];
                    map[sum] = numbers;
                }
            }

    unordered_map<int, vector<int>>::iterator pairIt;

    int target;
    ofstream g("loto.out");
    for (i = 1; i <= N; i++)
        for (j = i; j <= N; j++)
            for (k = j; k <= N; k++)
            {
                target = S - a[i] - a[j] - a[k];
                pairIt = map.find(target);
                if (pairIt != map.end())
                {
                    g << a[i] << " " << a[j] << " " << a[k] << " ";
                    g << pairIt->second[0] << " " << pairIt->second[1] << " " << pairIt->second[2];
                    g.close();
                    return 0;
                }
            }


    g << "-1";
    g.close();

    return 0;
}