Cod sursa(job #721823)

Utilizator tvararuVararu Theodor tvararu Data 24 martie 2012 11:16:18
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <cstdlib>
using namespace std;

int n, s;
set<int> numere;

vector<int> sol (6);

void back (int index, int sum)
{
	if (sum > s)
		return;
	if (index == 6)
	{
		if (sum == s)
		{
			ofstream out ("loto.out");
			for (int i = 0; i < 6; i++)
			{
				out << sol[i] << ' ';
			}
			out << '\n';
			out.close ();
			exit (0);
		}
	}
	else
	{
		for (set<int>::reverse_iterator it = numere.rbegin (); it != numere.rend (); it++)
		{
			sol[index] = *it;
			back (index + 1, sum + *it);
		}
	}
}

int main (int argc, char const *argv[])
{
	ifstream in ("loto.in");
	in >> n >> s;
	for (int i = 0; i < n; i++)
	{
		int numar; in >> numar;
		numere.insert (numar);
	}
	in.close ();
	
	if (s > 6 * (*numere.end ()))
	{	
		ofstream out ("loto.out");
		out << -1 << '\n';
		out.close ();
		exit (0);
	}
	back (0, 0);
	
	return 0;
}