Cod sursa(job #2735103)

Utilizator HadircaDionisieHadirca Dionisie HadircaDionisie Data 1 aprilie 2021 20:12:36
Problema Loto Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#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 reRun(int nums[]) {
	int value;
	for (int i = n - 1; i > -1;i--) {
		for (int j = n - 1; j > -1;j--) {
			for (int z = n - 1; z > -1;z--) {
				value = sum - nums[i] - nums[j] - nums[z];
				if (d.find(value) != d.end()) {
					fout << nums[i] << ' ' << nums[j] << ' ' << nums[z] << ' ' << d[value].num1 << ' ' << d[value].num2 << ' ' << d[value].num3;
					return;
				}
			}
		}
	}
	fout << -1;
	return;
}
int main() {
	
	fin >> n;
	fin >> sum;
	int *nums = new int[n];

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


	for (int i = 0; i < n;i++) {
		for (int j = 0; j < n;j++) {
			for (int z = 0; z < n;z++) {
				int value = nums[i]+nums[j]+nums[z];
				d[value].num1 = nums[i];
				d[value].num2 = nums[j];
				d[value].num3 = nums[z];
			}
		}
	}
	reRun(nums);

	delete[] nums;
	return 0;
}