Cod sursa(job #1510374)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 24 octombrie 2015 21:29:51
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("loto.in");
ofstream out("loto.out");

int n;
int s;
int *p;
typedef int stiva[100];
stiva st;
int ok = 1;
int sum = 0;

void tipar(int k)
{
    for(int i=1;i<=k;i++)
        out<<st[i]<<" ";
    out<<'\n';
}

bool valid(int k)
{
   if(st[k]<st[k-1])
        return false;
    if(sum>s)
        return false;
    return true;
}

void bk(int k)
{
    if(ok)
    {
    if(sum==s)
    {
        if(k==7)
        {
            tipar(k-1);
            ok = 0;
        }
    }
    else
    {
        for(int i=1;i<=n;i++)
        {
            st[k] = p[i];
            sum+=st[k];
            if(valid(k))
                bk(k+1);
            sum-=st[k];
        }
    }
    }
}

int main()
{
    in>>n>>s;
    p = new int[n+1];
    for(int i=1;i<=n;i++)
        in>>p[i];
    bk(1);
    in.close();
    out.close();
    delete[] p;
    return 0;
}