Cod sursa(job #483638)

Utilizator dcm9000Dinu Cristian Mircea - UPB dcm9000 Data 9 septembrie 2010 15:15:09
Problema Loto Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#include <string>
#include <map>

using namespace std;

#define FILE_IN "loto.in"
#define FILE_OUT "loto.out"

int N, S;
int NR[100];

int main()
{
	ifstream fisIn(FILE_IN);
	fisIn >> N >> S;
	for (int i=0; i<N; i++) fisIn >> NR[i];

	map<int,int> sume;
	
	for (int i=0; i<N; i++)
	{
		int nrI = NR[i];
		for (int j=0; j<N; j++)
		{
			int suma = nrI+NR[j];
			for (int k=0; k<N; k++)
				sume[suma+NR[k]] = i*10000+j*100+k;
		}
	}

	ofstream fisOut(FILE_OUT);

	map<int,int>::iterator end = sume.end();
	for (map<int,int>::iterator it = sume.begin(); it != end; it++)
	{
		map<int,int>::iterator elem = sume.find(S-it->first);

		if (elem != end)
		{
			fisOut
				<< (NR[it->second/10000]) << " "
				<< (NR[(it->second/100)%100]) << " "
				<< (NR[it->second%100]) << " "
				<< (NR[elem->second/10000]) << " "
				<< (NR[(elem->second/100)%100]) << " "
				<< (NR[elem->second%100]);
			
			return 0;
		}
	}

	fisOut << -1;
}