Cod sursa(job #217749)
Utilizator | Data | 30 octombrie 2008 09:44:58 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#include<vector>
using namespace std;
int n;
vector <bool> apar(10);
char sol[20];
void afisare(){
printf("%s\n",sol);
}
void bkt(int k, int poz){
if(k>n){
sol[poz]='\0';
afisare();
return;
}
for(int i=1;i<=n;++i)
if(apar[i]==0){
sol[poz]=i+'0';
sol[poz+1]=' ';
apar[i]=1;
bkt(k+1,poz+2);
apar[i]=0;
}
}
int main(){
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
bkt(1,0);
return 0;
}