Cod sursa(job #2622714)

Utilizator MicuMicuda Andrei Micu Data 1 iunie 2020 18:19:34
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

ifstream in("loto.in");
ofstream out("loto.out");

unordered_map<int, int*> map;
int v[100];

int main() {
	int n, s;
	in >> n >> s;
	for (int i = 0; i < n; i++) {
		in >> v[i];
	}

	bool ok = 0;
	for (int i = 0; i < n && !ok; i++) {
		for (int j = i; j < n && !ok; j++) {
			for (int k = j; k < n && !ok; k++) {
				int curr = v[i] + v[j] + v[k];
				// daca suma nu este in map, o adaugam
				if(!map[curr]) {
					int* val_curr = new int[3];
					val_curr[0] = v[i];
					val_curr[1] = v[j];
					val_curr[2] = v[k];
					map[curr] = val_curr;
				}
				// verificam daca este si complementul
				int* val = map[curr];
				int* comp = map[s-curr];
				if(comp){
					out << val[0] << ' ' << val[1] << ' ' << val[2] << ' ';
					out << comp[0] << ' ' << comp[1] << ' ' << comp[2] << ' ';
					ok = 1;
				}
			}
		}
	}
	if (!ok) out << -1;
	return 0;
}