Cod sursa(job #2735077)

Utilizator HadircaDionisieHadirca Dionisie HadircaDionisie Data 1 aprilie 2021 19:55:24
Problema Loto Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <queue>
#include <unordered_map>
#include <fstream>
using namespace std;

struct threeNums {
	int num1;
	int num2;
	int num3;
};
unordered_map<int, threeNums> d;
ifstream fin("loto.in");
ofstream fout("loto.out");
vector<int> nums;
int n, sum;

void run() {
	for (int i : nums) {
		for (int j : nums) {
			for (int z :nums) {
				int value = i+j+z;
				d[value].num1 = i;
				d[value].num2 = j;
				d[value].num3 = z;
			}
		}
	}
}

void reRun() {
	int value;
	for (int i : nums) {
		for (int j : nums) {
			for (int z : nums) {
				value = sum - i - j - z;
				if (d.find(value) != d.end()) {
					fout << i << ' ' << j << ' ' << z << ' ' << d[value].num1 << ' ' << d[value].num2 << ' ' << d[value].num3;
					return;
				}
			}
		}
	}
	fout << -1;
	return;
}
int main() {
	
	fin >> n;
	fin >> sum;


	for (int i = 0; i < n; i++) {
		int digit;
		fin >> digit;
		nums.push_back(digit);
	}

	run();
	reRun();

	return 0;
}