Cod sursa(job #2514115)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 24 decembrie 2019 15:19:12
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 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];
	
unordered_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 = i; j <= n; ++j)
	
            for (int k = j; 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;
	
}