Cod sursa(job #2745439)

Utilizator Dantelogus99Gruia Gabriel Dantelogus99 Data 26 aprilie 2021 15:53:40
Problema Loto Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;

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

class halfSum
{
public:
	int a;
	int b;
	int c;
};

unordered_map<int, halfSum> semiSume;
vector<int> v;
int c[6], n, s;
bool found = false;

int main()
{
	halfSum ob;
	fin >> n >> s;

	for (int i = 0; i < n; i++)
	{
		int x;
		fin >> x;
		v.push_back(x);
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			for (int k = 0; k < n; k++)
			{
				ob.a = v[i];
				ob.b = v[j];
				ob.c = v[k];
				semiSume.insert({ v[i] + v[j] + v[k], ob });

				auto comp = semiSume.find(s - v[i] - v[j] - v[k]);
				if (comp != semiSume.end() && found == false)
				{
					found = true;
					c[0] = ob.a;
					c[1] = ob.b;
					c[2] = ob.c;
					c[3] = comp->second.a;
					c[4] = comp->second.b;
					c[5] = comp->second.c;
					sort(c, c + 6);

					break;
				}
			}
		}
	}

	if (found)
		for (int i = 0; i < 6; i++)
			fout << c[i] << " ";
	else
		fout << -1;
}