Cod sursa(job #1307015)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 31 decembrie 2014 19:55:24
Problema Loto Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;

struct Node
{
    int n1, n2, n3;
};

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 = 1; j <= N; j++)
            for (k = 1; 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;
                }
            }

    bool found = false;
    unordered_map<int, vector<int>>::iterator pairIt;

    ofstream g("loto.out");
    for (unordered_map<int, vector<int>>::iterator it = map.begin(); it != map.end() && !found; it++)
    {
        pairIt = map.find(S - it->first);
        if (pairIt != map.end())
        {
            found = true;
            g << it->second[0] << " " << it->second[1] << " " << it->second[2] << " ";
            g << pairIt->second[0] << " " << pairIt->second[1] << " " << pairIt->second[2];
        }
    }

    if (!found)
        g << -1;
    g.close();

    return 0;
}