Cod sursa(job #2735080)

Utilizator HadircaDionisieHadirca Dionisie HadircaDionisie Data 1 aprilie 2021 19:59:02
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");
int n, sum;

void run(vector<int> nums) {
	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(vector<int> nums) {
	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;
	vector<int> nums(n);

	for (int i = 0; i < n; i++) {
		fin >> nums[i];
	}

	run(nums);
	reRun(nums);

	return 0;
}