Cod sursa(job #2009829)

Utilizator frodobiosif aug frodob Data 10 august 2017 22:34:10
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

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

int main(void) {
	int s = 0, x;
	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>>x;
		numbers.push_back(x);
	}
	// order vector
	sort (numbers.begin(), numbers.end());
	// start 
	recursiv(0, s);
	//
	if (!found)
		outfile<<"-1";

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

void recursiv(int level, int sp){
	for(int i=0; (i<n) && (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;
}