Cod sursa(job #1433563)

Utilizator lilian_ciobanuLilian Ciobanu lilian_ciobanu Data 9 mai 2015 16:05:22
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<cstdio>

using namespace std;

int main(){
    short int n, i, j, t, x;
    bool b = true;
    short int a[8];

    freopen("permutari.in", "r", stdin);
    freopen("permutari.out", "w", stdout);

    scanf("%hd", &n);

    for(i=0; i<n; ++i){
        a[i] = i + 1;
    }

    do{

        for(i=0; i<n; ++i){
            printf("%hd ", a[i]);
        }printf("\n");

        b = false;
        for(i=n-2; i>=0; --i){
            if(a[i] < a[i+1]){
                b = true;
                break;
            }
        }
        if(b == true){
            for(j=n-1; j>=0; --j){
                if(a[j] > a[i])
                    break;
            }
        }else
            return 0;

        t = a[i];
        a[i] = a[j];
        a[j] = t;

        j = (n + i)>>1;

        for(x = 0,i = i + 1; i <= j; ++i, ++x){
            t = a[i];
            a[i] = a[n - 1 - x];
            a[n - 1 - x] = t;
        }
    }while(b == true);

return 0;
}