Cod sursa(job #1307760)

Utilizator wGEORGEWGeorge Cioti wGEORGEW Data 2 ianuarie 2015 19:50:04
Problema Loto Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 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();
 
 
    int sum;
    vector<int> numbers;
    for (i = 0; i < 3; i++)
        numbers.push_back(0);
 
    unordered_map<int, vector<int>> map;
    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];
                numbers[0] = a[i];
                numbers[1] = a[j];
                numbers[2] = a[k];
                map[sum] = numbers;
            }
 
    unordered_map<int, vector<int>>::iterator pairIt;
 
    bool found = false;
    ofstream g("loto.out");
 
    for (pairIt = map.begin(); pairIt != map.end() && !found; pairIt++)
    {
        if (map[S - pairIt->first].size())
        {
            g << map[pairIt->first][0] << " " << map[pairIt->first][1] << " " << map[pairIt->first][2] << " ";
            g << map[S - pairIt->first][0] << " " << map[S - pairIt->first][1] << " " << map[S - pairIt->first][2];
            found = true;
        }
    }
 
 
    if (!found)
        g << -1;
    g.close();
 
    return 0;
}