Cod sursa(job #2658933)

Utilizator chriss_b_001Cristian Benghe chriss_b_001 Data 15 octombrie 2020 15:13:42
Problema Partitie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

///90 de puncte

using namespace std;
using namespace std;

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

int n, x[51];

void afis(int k) ///k numere in partitie
{
    static char buf[111];
    int p = 0;
    for(int i = 1; i <= k; i++)
    {
        p += sprintf(buf + p, "%d ", x[i]);
    }
    buf[p++] = '\n';
    buf[p] = 0;
    g << buf;
}

void BT(int k, int s)
{
    if(s < n)
        for(int i = min(x[k - 1], n - s); i >= 1; i--) ///(*)
        {
            x[k] = i;
            BT(k + 1, s + i);
        }
    else ///s==n
        afis(k - 1);
}
int main()
{
    f >> n;
    x[0] = n; ///artificiu pentru (*)
    BT(1, 0);
    return 0;
}