Cod sursa(job #764280)

Utilizator mi5humihai draghici mi5hu Data 4 iulie 2012 17:44:17
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
short int v[10]; 
short int n;

void afiseaza() {
     for (int i = 1; i <= n; i++) {
         printf("%hd ", v[i]);
     }      
     printf("\n");
}

bool valid(short int poz, short int val) {
     for (int i = 1; i < poz; i++) {
         if (v[i] == val) {
            return false;         
         }
     }     
     return true;
}

void genereaza(short int poz) {
     if (poz == n + 1) {
         afiseaza();
         return;
     }
     
     for (short int j = 1; j <= n; j++) {
         if (valid(poz, j)) {
            v[poz] = j;
            genereaza(poz + 1);
         } 
     } 
}

int main() {
    freopen("permutari.in", "r", stdin);
    freopen("permutari.out", "w", stdout);
    
    scanf("%hd", &n);
    
    genereaza(1);
    
    return 0;    
}