Cod sursa(job #1729269)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 14 iulie 2016 15:27:05
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.47 kb
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
unordered_map <int, bool> exista;
const int maxn = 605;
int v[maxn];
int main()
{
    int n, s;
    in >> n >> s;
    for(int i = 1; i <= n; i++)
        in >> v[i];
    for(int i = 1; i <= n; i++)
        for(int j = i; j <= n; j++)
            for(int k = j; k <= n; k++)
                exista[v[i] + v[j] + v[k]] = 1;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            for(int k = 1; k <= n; k++)
            {
                if(exista[s - v[i] - v[j] - v[k]] == 1)
                {
                    out << i << " " << j << " " << k << " ";
                    for(int i1 = 1; i1 <= n; i1++)
                    {
                        for(int j1 = i1; j1 <= n; j1++)
                        {
                            for(int k1 = j1; k1 <= n; k1++)
                            {
                                if(v[i1] + v[j1] + v[k1] == s - v[i] - v[j] - v[k])
                                {
                                    out << i1 << " " << j1 << " " << k1 << "\n";
                                    return 0;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    out << -1 << "\n";
    return 0;
}