Cod sursa(job #3004001)

Utilizator TanasaStefanTanasa Stefan TanasaStefan Data 16 martie 2023 08:29:12
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <fstream>

using namespace std;

ifstream f("triunghi.in");
ofstream g("triunghi.out");

int n , s  , suma , a[25][25] , nr;

bool ok = false;

void afis()
{
    for(int i = 1 ; i <= n ; i++ , g << '\n')
        for (int j = 1 ; j <= i ; j++)
            g  << a[i][j] << " ";
    nr++;
}

void verif(int k)
{
    for ( int i = 1 ; i <= k ; i++)
        {
            a[k - 1][i] = a[k][i] + a[k][i + 1];
            suma = suma + a[k][i];
        }
    if(suma == s && k == 1)
    {
        afis();
        ok = true;
    }

    if(suma < s && k > 1)
    {
        verif(k - 1);
    }
}
void bkt(int k)
{
    for ( int i = 1 ; i <= s / n && ok == false; i++)
    {
        a[n][k] = i;
        if(k == n)
        {
            suma = 0;
            verif(n);
            if(suma > s)
                break;
        }
        else
            bkt(k + 1);
    }
}
int main()
{
    f >> n >> s;

    bkt(1);

    if(nr == 0)
        g << "imposibil";
    return 0;
}