Pagini recente » Cod sursa (job #1281122) | Cod sursa (job #3167679) | Cod sursa (job #2553661) | Cod sursa (job #1195121) | Cod sursa (job #1754496)
#include<iostream>
using namespace std;
int *a,n,m;
void show(){
for(int i=0;i<m;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 valid(int x){
if(x<1)return true;
if(a[x-1]>a[x])return false;
valid(x-1);
}
bool solve(int l,int r){
if(l==r){if(valid(m-1))show();return true;}
for(int i=l;i<n;i++){
swap(l,i);
solve(l+1,r);
swap(l,i);
}
}
int main(){
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d %d",&n,&m);
a=(int*)malloc(sizeof(int*)*100000);
for(int i=0;i<n;i++){
a[i]=i+1;
}
solve(0,n-1);
}