Cod sursa(job #1573279)

Utilizator krityxAdrian Buzea krityx Data 19 ianuarie 2016 16:21:52
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <map>
#include <tuple>

using namespace std;

int main()
{
	int N, S, V[102], i, j, k, tmpSum;
	map<int, tuple<int, int, int>> m;
	ifstream f("loto.in");
	f >> N >> S;
	for (i = 1; i <= N; i++)
	{
		f >> V[i];
	}
	f.close();

	for (i = 1; i <= N; i++)
	{
		for (j = 1; j <= N; j++)
		{
			for (k = 1; k <= N; k++)
			{
				tmpSum = V[i] + V[j] + V[k];
				tuple<int, int, int> t(i, j, k);
				m.insert(pair<int, tuple<int, int, int>>(tmpSum, t));
			}
		}
	}
	ofstream g("loto.out");
	for (i = 1; i <= N; i++)
	{
		for (j = 1; j <= N; j++)
		{
			for (k = 1; k <= N; k++)
			{
				tmpSum = V[i] + V[j] + V[k];
				try
				{
					tuple<int, int, int> t = m.at(S - tmpSum);
					g << V[i] << " " << V[j] << " " << V[k] << " " << V[get<0>(t)] << " " << V[get<1>(t)] << " " << V[get<2>(t)] << flush;
					return 0;
				}
				catch (const out_of_range &oor)
				{
					continue;
				}
			}
		}
	}
	g << -1;
	g.close();
	return 0;
}