Cod sursa(job #2009876)

Utilizator frodobiosif aug frodob Data 11 august 2017 01:22:53
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
// globals
int sol[6];
bool found  = false;
int n;
int numbers[101];
fstream outfile("loto.out", ios::out);
// prototypes
void recursiv(int level, int sp);

int main(void) {
	int s = 0;
	fstream infile("loto.in", ios::in);
	// read n
	infile>>n;
	// read the sum v
	infile>>s;
	// read numbers
	for(int i=0;i<n; ++i) 
		infile>>numbers[i];
	// order vector
	sort (numbers, numbers+n);
	if (6*numbers[n-1]>=s) // start 
	    recursiv(0, s);
	//
	if (!found)
		outfile<<"-1";

	infile.close();
	outfile.close();
	return 0;
}

void recursiv(int level, int sp){
	int nmax = (sp<numbers[n/2])?n/2:n;
	for(int i=0; (i<nmax) && (numbers[i]<=sp); ++i) {
		if (found)
			break;
		sol[level] = numbers[i];
		if (level<5)
			recursiv(level+1, sp-numbers[i]);
		else if ((level==5) && (numbers[i]==sp)) {
		        found = true;
			    outfile<<sol[0]<<" "<<sol[1]<<" "<<sol[2]<<" "
		                       <<sol[3]<<" "<<sol[4]<<" "<<sol[5]<<"\n";
				break;
	    }

	}
	return;
}