Cod sursa(job #2514100)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 24 decembrie 2019 15:05:16
Problema Loto Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define ff first
#define ss second

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pll;
typedef pair<ld, ld> pld;

const string file = "loto";
const ll INF = 9223372036854775807ll;
const int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1}, inf = 2147483647, nmax = 105;

struct triple{
    short x, y, z;
};

int n, S, v[nmax];
map<int, triple> m;

int main()
{
    ifstream fin (file+".in");
    ofstream fout (file+".out");
    fin >> n >> S;
    for (int i = 1; i <= n; ++i)
        fin >> v[i];
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            for (int k = 1; k <= n; ++k)
                if (v[i]+v[j]+v[k] <= S)
                    m[v[i]+v[j]+v[k]] = {i, j, k};
    for (auto x : m){
        if (m.find(S-x.ff) != m.end()){
            triple a = m.find(S-x.ff)->ss;
            fout << v[x.ss.x] << " " << v[x.ss.y] << " " << v[x.ss.z] << " " << v[a.x] << " " << v[a.y] << " " << v[a.z] << "\n";
            return 0;
        }
    }
    fout << "-1\n";
    return 0;
}