Cod sursa(job #2954413)

Utilizator _andrei4567Stan Andrei _andrei4567 Data 14 decembrie 2022 10:36:15
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

ifstream cin ("loto.in");
ofstream cout ("loto.out");

const int N = 100;
int a[N + 1];

map <int, pair <int, int> > m;


int n, sum;

int main()
{
    cin >> n >> sum;
    for (int i = 1; i <= n; ++i)
        cin >> a[i];
    bool gasit = false;
    for (int i = 1; i <= n; ++i)
        for (int j = i; j <= n; ++j)
            for (int k = j; k <= n; ++k)
                if (a[i] + a[j] + a[k] <= sum)
                {
                    m[a[i] + a[j] + a[k]] = {a[i], a[j]};
                    if (m.find (sum - a[i] - a[j] - a[k]) != m.end())
                    {
                        int dif = sum - a[i] - a[j] - a[k];
                        cout << a[i]  << ' ' << a[j] << ' ' << a[k] << ' ' << m[dif].first << ' ' << m[dif].second << ' ' << dif - m[dif].first - m[dif].second << '\n';
                        return 0;
                    }
                }

    if (!gasit)
        cout << "-1";
    return 0;
}