Cod sursa(job #614494)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 6 octombrie 2011 18:32:34
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
int n,x[9],e[10];

void increase(int &p){
    int i;
        for(i=n;i>=0;i--)
        if(!e[x[i]+1]){e[x[i]]=0;x[i]++;e[x[i]]=1;p=i+1;return ;}
        else e[x[i]]=0;
}

void comb(){
    int p;
    for(int i=1;i<=n;i++)printf("%d",x[i]);printf("\n");
    increase(p);
    for(;p<=n;p++)
    for(int j=1;j<=n;j++)
    if(!e[j]){x[p]=j;e[j]=1;break;};
}

int main(){
    freopen("permutari.in","r",stdin);
    freopen("permutari.out","w",stdout);
        scanf("%d",&n);
        e[n+1]=1;
        for(int i=1;i<=n;i++){x[i]=i;e[i]=1;};
        while(x[0]==0)comb();
}