Cod sursa(job #2279213)

Utilizator FastDr1v3rMarut Florin Viorel FastDr1v3r Data 9 noiembrie 2018 09:59:35
Problema 1-sir Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <math.h>
using namespace std;

int s[257], N, S, as, ev, k, nr;

void init()
{
    s[k]=0;
}

int succesor()
{
    if(s[k]<N-1)
    {
        s[k]++;
        return 1;
    }
    return 0;
}

int valid()
{
    if(k>=2)
        if(abs(s[k]-s[k-1])!=1)
           return 0;
    return 1;
}

int solutie()
{
    int S2=0;
    for(int i=1; i<=k; i++)
        S2=S2+s[i];

    if(S2==S && k==N)
        return 1;

    return 0;
}

void tipar()
{
    for(int i=1; i<=k; i++)
        cout << s[i];
    cout << endl;
}

int main()
{
    cin >> N >> S;
    k=2;
    while(k>1)
    {
        do
        {
            as = succesor();
            if(as)
                ev = valid();
        } while(!((as && ev) || !(as)));

        if(as)
        {
            if(solutie())
             {
                nr++;
                tipar();
             }
            else
            {
                k++;
                init();
            }
        }
        else
            k--;
    }
    cout << nr;
}