Cod sursa(job #2893492)

Utilizator 100pCiornei Stefan 100p Data 26 aprilie 2022 00:20:09
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <bits/stdc++.h>
#define ull unsigned long long
#define FILES freopen("loto.in","r",stdin);\
              freopen("loto.out","w",stdout);
#define CMAX 15485863
#define fastio std::ios_base::sync_with_stdio(NULL),cin.tie(NULL),cout.tie(NULL);
#define mp make_pair
#define INF 1e18
#define mod 666013
#define ll long long
#define SMAX 300
#define MAX 4000
#define pb push_back
#define add emplace_back
#define void inline void

using namespace std;
struct solve
{
    int first, second, third;
};
int n,s,v[105];
unordered_map<int,solve> Mp;
int main()
{
    FILES
    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 u = v[i] + v[j] + v[k];
                Mp[u] = {v[i],v[j],v[k]};
            }
        }
    }
    for(int i = 1;i <= n; ++i)
    {
        for(int j = i;j <= n; ++j)
        {
            for(int k = j;k <= n; ++k)
            {
                int u = v[i] + v[j] + v[k];
                if(Mp.find(s-u) != Mp.end())
                {
                    cout << Mp[s-u].first << ' ' << Mp[s-u].second << ' ' << Mp[s-u].third << ' ' << v[i] << ' ' << v[j] << ' ' << v[k];
                    exit(0);
                }
            }
        }
    }
    cout << "-1";
}