Cod sursa(job #869281)

Utilizator somfeleaniuliaSomfelean Iulia somfeleaniulia Data 1 februarie 2013 12:20:44
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<fstream>
using namespace std;
	fstream fin("loto.in",ios::in),fout("loto.out",ios::out);

    int n;

    long long s,x[7],v[101],sol;

int valid(int suma,int k)
{
    return (suma<=s && k<=6);
}
int solutie(int suma,int k)
{
    if (k==6 && suma==s)
        return 1;
    else
        return 0;
}
void prelucreaza()
{
    for(int i=1;i<=6;i++)
    {
        fout<<x[i]<<" ";
    }
}
void back(int k,long long suma)
{
    if(sol==1)
    return ;
    for(int i=1;i<=n;i++)
    {
        x[k]=v[i];

        if(valid(suma+v[i],k))
        {

            if(solutie(suma+v[i],k))
            {
                //fout<<k<<" "<<x[k]<<endl;
                prelucreaza();
                sol=1;
                return ;
            }

            else
                back(k+1,suma+v[i]);
        }


    }
}
int main()
{
	int i;
	fin>>n>>s;
	for(i=1;i<=n;i++)
	{
	    fin>>v[i];
	}
	back(1,0);
    if(sol==0)
    fout<<-1;

fin.close();
fout.close();
return 0;
}