Cod sursa(job #1287562)

Utilizator emiiMihailescu Ionut Emanuel emii Data 7 decembrie 2014 20:28:19
Problema Loto Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1 kb
#include <fstream>
#include <unordered_set>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
unordered_set <long long> h;
int i, n, ok, j, k, v[101];
long long s,nr;
int main()
{
	f >> n >> s;
	for (i = 0; i < n; i++)
		f >> v[i];
	ok = 0;
	for (i = 0; i < n; i++)
	{
		if (ok == 1)
			break;
		for (j = 0; j < n; j++)
		{
			if (ok == 1)
				break;
			for (k = 0; k < n; k++)
			{
				if (ok == 1)
					break;
				h.insert(v[i] + v[j] + v[k]);
				if (h.find(s - v[i] - v[j] - v[k])!=h.end())
					ok = 1, g << v[i] << " " << v[j] << " " << v[k] << " ", nr = s - v[i] - v[j] - v[k];
			}
		}
	}
	if (ok == 0)
		g << -1;
	else
	{
		ok = 0;
		for (i = 0; i < n; i++)
		{
			if (ok == 1)
				break;
			for (j = 0; j < n; j++)
			{
				if (ok == 1)
					break;
				for (k = 0; k < n; k++)
				{
					if (ok == 1)
						break;
					if (nr == v[i] + v[j] + v[k])
						ok = 1, g << v[i] << " " << v[j] << " " << v[k] << " ";
				}
			}
		}
	}
	return 0;
}