Pagini recente » Cod sursa (job #930055) | Cod sursa (job #113765) | Cod sursa (job #2980926) | Cod sursa (job #278896) | Cod sursa (job #1753586)
#include<iostream>
using namespace std;
int *a,n;
void show(){
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
}
void swap(int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
bool solve(){
int i=n-1,j=n-1;
while (i>0&&a[i-1]>=a[i])
i--;
if (i<=0)
return false;
while(a[j]<=a[i-1])
j--;
swap(i-1,j);
j=n-1;
while (i < j) {
swap(i,j);
i++;
j--;
}
show();
return true;
}
int main(){
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d",&n);
a=(int*)malloc(sizeof(int*)*100000);
for(int i=0;i<n;i++){
a[i]=i+1;
}
show();
while(solve());
}