Cod sursa(job #565245)

Utilizator morlockRadu Tatomir morlock Data 27 martie 2011 14:18:07
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int n,s, v[100], sol[100], suma=0, p=6, gasit=0;
ifstream in("loto.in"); //ofstream out("loto.out");




void afiseaza()
{
	FILE * in;
	in = fopen ("loto.out","w");

	if(gasit)
	for (int i=1; i<=p; ++i)
	{
		fprintf(in,"%d ",sol[i]);
		//out<<sol[i]<<" ";
	}
     else fprintf(in,"-1");
	fclose(in);
}

int valid(int k)
{
	for (int i=1; i<k; ++i)
		if (sol[k] > sol[i]) return 0; return 1;
}

void back(int k)
{
	if (k == p+1)
	{
		for (int i=1; i<=p; ++i)
		{	
			suma+=sol[i];
			//out<<sol[i]<<" ";
		}
		if (suma == s) { gasit=1; afiseaza(); exit(EXIT_SUCCESS); }
		suma=0;
	}
	else 
	{
		for (int i=1; i<=n; ++i)
		{	
			sol[k]=v[i];
			if (valid(k)) back(k+1);
		}
	}
	
}


int main()
{
	
	in>>n>>s;
	
	for (int i=1; i<=n; i++)
		in>>v[i];

	p=6;
    back(1);
	
	
 //if (gasit == 0) out<<"-1";
   afiseaza();
   in.close();
  // out.close();
return 0;
}