Cod sursa(job #869287)

Utilizator somfeleaniuliaSomfelean Iulia somfeleaniulia Data 1 februarie 2013 12:32:43
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 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 (x[k]!=0 && 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<<v[x[i]]<<" ";
    }
}
void back(int k,long long suma)
{
    if(sol==1)
    return ;
    for(int i=x[k-1];i<=n;i++)
    {
        x[k]=i;

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

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

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


    }
}
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;
}