Cod sursa(job #3165852)

Utilizator IvanAndreiIvan Andrei IvanAndrei Data 7 noiembrie 2023 08:03:14
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <bits/stdc++.h>

using namespace std;

struct str{
    int x, y, z;
};

const long long max_size = 1e2 + 3;

int v[max_size];
unordered_map <int, str> mp;

signed main ()
{
    #ifdef LOCAL
       freopen("test.in", "r", stdin);
       freopen("test.out", "w", stdout);
    #else
       freopen("loto.in", "r", stdin);
       freopen("loto.out", "w", stdout);
    #endif // LOCAL
    int n, s;
    cin >> n >> s;
    for (int i = 1; i <= n; i++)
    {
        cin >> v[i];
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = i; j <= n; j++)
        {
            for (int k = j; k <= n; k++)
            {
                int sum = v[i] + v[j] + v[k];
                mp[sum] = {i, j, k};
            }
        }
    }
    vector <int> ans;
    for (int i = 1; i <= n; i++)
    {
        for (int j = i; j <= n; j++)
        {
            for (int k = j; k <= n; k++)
            {
                int sum = v[i] + v[j] + v[k];
                if (mp.find(s - sum) != mp.end())
                {
                    ans.clear();
                    ans.push_back(i);
                    ans.push_back(j);
                    ans.push_back(k);
                    str aux = mp[s - sum];
                    ans.push_back(aux.x);
                    ans.push_back(aux.y);
                    ans.push_back(aux.z);
                }
            }
        }
    }
    if (ans.size() == 0)
    {
        cout << -1;
    }
    else
    {
        for (auto f : ans)
        {
            cout << f << " ";
        }
    }
    return 0;
}