Cod sursa(job #2132794)

Utilizator burnfireStefanescu Petru burnfire Data 16 februarie 2018 00:59:15
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
int x[7],a[101],n,s,sol[7];
void citire()
{
    f>>n>>s;
    for(int i=1;i<=n;i++)
        f>>a[i];
}
bool valid(int k)
{
    return k<=6;
}
bool solutie(int k,int sum)
{
    return k==6&&sum==s;
}
void back(int k=1,int s=0)
{
    for(int i=1;i<=n&&sol[1]==0;i++)
    {
        x[k]=i;
        s+=a[i];
        if(valid(k))
        {
            if(solutie(k,s))
            {
                for(int i=1;i<=6;i++)
                    sol[i]=a[x[i]];
            }
            else
                back(k+1,s);
        }
        s-=a[i];
    }
}
bool e_zero()
{
    for(int i=1;i<=6;i++)
        if(sol[i]==0)
            return 1;
    return 0;
}
int main()
{
    citire();
    back();
    if(e_zero()==false)
    {
        for(int i=1;i<=6;i++)
            g<<sol[i]<<' ';
    }
    else
        g<<-1;
    return 0;
}