Cod sursa(job #2023067)

Utilizator StefanManolacheManolache Stefan StefanManolache Data 18 septembrie 2017 10:20:09
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>

FILE *fin = fopen("permutari.in", "r");
FILE *fout = fopen("permutari.out", "w");

int st[19];
int n, m;

void afisare (int t) {
    for (int i = 1; i <= t; i++) {
        fprintf(fout, "%d", st[i]);
        fprintf(fout, " ");

    }
    fprintf(fout, "\n");
}

bool valid(int k) {
    for (int i = 1; i < k; i++)
        if (st[k] <= st[i])
            return false;
    return true;
}

void bkt(int k) {
    if (k <= n + 1)
        afisare(k);

    for (int i = 1; i <= n; i++)
    {
        st[k] = i;
        if (valid(k))
            bkt(k + 1);
    }
}


int main() {
    fscanf(fin, "%d", &n);
    bkt(1);

}