Cod sursa(job #2345383)

Utilizator dianaICHBghita diana dianaICHB Data 16 februarie 2019 12:08:52
Problema Loto Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int v[105],w[105];
int n,s,con,sol=0;
void afis ()
{
    int i;
    sol=1;
    for (i=1;i<=6;i++)
        printf("%d ",w[i]);
}
int verif (int sum)
{
    if (sum<=s)
        return 1;
    else
        return 0;
}
int bac (int k,int sum)
{
    int i;
    if (k==7)
    {
        if (sum==s)
        {
        afis();
        //break;
        //return 0;
        exit(0);
       // exit (EXIT_FAILURE);
        //endl;
        }
    }
    else
    {
        for (i=con-1;i>=0;i--)
        {
            w[k]=v[i];
            sum=sum+w[k];
            //printf("%d %d %d\n",k,w[k],sum);
            if (verif(sum)==1)
            {
                //k++;
                //sum=sum+w[k];
                bac (k+1,sum);

            }
            sum=sum-w[k];
        }
    }
}
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    int i,x;
    scanf("%d%d",&n,&s);
    con=0;
    for (i=0;i<n;i++)
    {
        scanf("%d",&x);
        if (x<=s-5)
        {
            v[con]=x;
         con++;
        }
    }
    sort (v,v+con);
    bac(1,0);
    if (sol==0)
        printf("-1");
    return 0;
}