Cod sursa(job #2734420)

Utilizator LordNecrateBiowCuciureanu Dragos-Adrian LordNecrateBiow Data 31 martie 2021 20:40:15
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace std;

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

struct elem
{
	int first, second, third;
};

unordered_map <int, elem> has;

int main()
{
	bool ok = false;
	int n, s;
	fin >> n >> s;

	vector <int> v(n);

	for (int i = 0; i < n; i++)
	{
		int x;
		fin >> v[i];
	}
	
	for (int i = 0; i < n; i++)
		for (int j = i; j < n; j++)
			for (int k = j; k < n; k++)
			{
				has[v[i] + v[j] + v[k]].first = v[i];
				has[v[i] + v[j] + v[k]].second = v[j];
				has[v[i] + v[j] + v[k]].third = v[k];
			}

	for (int i = 0; i < n && ok == false; i++)
		for (int j = i; j < n && ok == false; j++)
			for (int k = j; k < n && ok == false; k++)
			{
				if (has.find(s - v[i] - v[j] - v[k]) != has.end())
				{
					fout << v[i] << " " << v[j] << " " << v[k] << " ";
					fout << has[s - v[i] - v[j] - v[k]].first << " " << has[s - v[i] - v[j] - v[k]].second << " " << has[s - v[i] - v[j] - v[k]].third << " ";
					ok = true;
				}
			}

	if (ok == false)
		fout << -1;

	return 0;
}