Cod sursa(job #1378848)

Utilizator NistorSergiuNistor Sergiu NistorSergiu Data 6 martie 2015 14:48:28
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
#include<cstdlib>
#include<tr1/unordered_map>

#define NMAX 101

using namespace std;
using namespace tr1;

unordered_map <int, bool> hs;
int numbers[NMAX];
int main()
{
	int n, s;
	int i;
	int nr1, nr2, nr3;
	int nr4, nr5, nr6;
	int sum;
	ifstream f("loto.in");
	f>>n>>s;
	for(i=1; i<=n; i++)
		f>>numbers[i];
	f.close();
	for(nr1=1; nr1<=n;nr1++)
		for(nr2=1; nr2<=n;nr2++)
			for(nr3=1; nr3<=n;nr3++)
				if(nr1+nr2+nr3<=s)
					hs[(numbers[nr1]+numbers[nr2]+numbers[nr3])]=1;
	ofstream g("loto.out");
	for(nr1=1; nr1<=n;nr1++)
		for(nr2=1; nr2<=n;nr2++)
			for(nr3=1; nr3<=n;nr3++)
				if(numbers[nr1]+numbers[nr2]+numbers[nr3]<=s && hs.find(s-numbers[nr1]-numbers[nr2]-numbers[nr3])!=hs.end())
				{
					sum=s-numbers[nr1]-numbers[nr2]-numbers[nr3];
					for(nr4=1; nr4<=n;nr4++)
						for(nr5=1; nr5<=n;nr5++)
							for(nr6=1; nr6<=n;nr6++)
								if(numbers[nr4]+numbers[nr5]+numbers[nr6]==sum)
								{
									g<<numbers[nr1]<<" "<<numbers[nr2]<<" "<<numbers[nr3]<<" "<<numbers[nr4]<<" "<<numbers[nr5]<<" "<<numbers[nr6]<<"\n";
									g.close();
									exit(0);
								}
				}
	g<<"-1\n";
	g.close();
	return 0;
}