Cod sursa(job #2743443)

Utilizator SteFUNGrigorescu Stefan Dumitru SteFUN Data 22 aprilie 2021 23:30:32
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
// pariuri

#include <iostream>

// Loto
#include <fstream>
#include <unordered_map>

std::ifstream f("pariuri.in");
std::ofstream g("pariuri.out");

int numere[100];

struct suma
{
	int c1, c2, c3;


};

std::unordered_map <int, suma> parti;

int main()
{
	int n, s;
	f >> n >> s;
	for (int i = 0; i < n; i++)
		f >> numere[i];
	for (int i = 0; i < n; i++)
	{
		suma candidat;
		candidat.c1 = numere[i];
		for (int j = i; j < n; j++)
		{
			candidat.c2 = numere[j];
			for (int k = j; k < n; k++)
			{
				candidat.c3 = numere[k];
				const int s_actuala = candidat.c1 + candidat.c2 + candidat.c3;
				if (s_actuala == s)
				{
					g << candidat.c1 << " " << candidat.c2 << " " << candidat.c3;
					return 0;
				}
				else if (s_actuala < s)
				{
					parti[s_actuala] = candidat;
					if (parti.find(s - s_actuala) != parti.end())
					{
						g << candidat.c1 << " " << candidat.c2 << " " << candidat.c3 << " " << parti[s - s_actuala].c1 << " " << parti[s - s_actuala].c2 << " " << parti[s - s_actuala].c3;
						return 0;
					}
				}
			}
		}
	}
	g << "-1";
	return 0;
}