Cod sursa(job #2892523)

Utilizator stefanliciuLiciu Vasile-Stefan stefanliciu Data 22 aprilie 2022 14:38:12
Problema Loto Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

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

int main()
{
	int N, S, *numere;
	unordered_map<int, tuple<int, int, int>>sume;
	
	fin >> N >> S;
	numere = new int[N + 1];

	for (int i = 0; i < N; ++i)
		fin >> numere[i];

	for (int i = 0; i < N; ++i)
		for (int j = 0; j < N; ++j)
			for (int k = 0; k < N; ++k)
			{   if(sume.find(numere[i] + numere[j] + numere[k]) == sume.end())
				 sume[numere[i] + numere[j] + numere[k]] = make_tuple(i, j, k);
			}


	for (int i = 0; i < N; ++i)
		for (int j = i; j < N; ++j)
			for (int k = j; k < N; ++k)
				if (sume.find(S - numere[i] - numere[j] - numere[k]) != sume.end())
				{
					fout << numere[get<0>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[get<1>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[get<2>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[i] << ' ' << numere[j] << ' ' << numere[k];
					return 0;
				}
	fout << -1;
	return 0;
}