Cod sursa(job #2740540)

Utilizator Alex18maiAlex Enache Alex18mai Data 13 aprilie 2021 14:54:02
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
//ALEX ENACHE

#include <vector>
#include <algorithm>

#include <math.h>
#include <iomanip>
#include <bitset>

#include <queue>
#include <deque>
#include <stack>
#include <string>

#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>

#include <random>
#include <time.h>
#include <assert.h>

using namespace std;

#include <fstream>

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

const int MAXN = 105;


struct nod {
	int a, b, c;
};

int v[MAXN];
unordered_map < int, nod > M;


int main() {

	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++) {
				M[v[i] + v[j] + v[k]] = { v[i], v[j], v[k] };
				if (M.find(s - v[i] - v[j] - v[k]) != M.end()) {
					cout << v[i] << " " << v[j] << " " << v[k] << " " << M[s - v[i] - v[j] - v[k]].a <<" " << M[s - v[i] - v[j] - v[k]].b << " " << M[s - v[i] - v[j] - v[k]].c << '\n';
					return 0;
				}
			}
		}
	}

	cout << -1 << '\n';

}