Cod sursa(job #1069469)

Utilizator dotixRadu-Bogdan Croitoru dotix Data 30 decembrie 2013 02:04:05
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#include <fstream>

int n, st[100], k, good=0, k_poz;

void afisare() {
    for(int i = 1; i <= n; i++)
        printf("%d ", st[i]);
    printf("\n");
    good++;
}

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

int stiva_valida() {
    int i;
    for (i = 1; i < k_poz; i++)
        if(st[k_poz] < st[i])
            return 0;
    return 1;
}

void back(int k) {
    int i;
    if(k > n && stiva_valida()) {
        afisare();

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

int main() {
    std::ifstream infile("perm.in");
    std::ofstream outfile("perm.out");

    while(infile >> n >> k_poz)
        back(1);
        printf("%d\n", good);
        good = 0;

    return 0;
}