cf B. Levko and Permutation
http://codeforces.com/contest/361/problem/B
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int n,k; 7 8 int main() 9 { 10 while(scanf("%d%d",&n,&k)!=EOF) 11 { 12 if(n==k) 13 { 14 printf("-1\n"); 15 continue; 16 } 17 int m=n-k; 18 if(m==1) 19 { 20 for(int i=1; i<=n; i++) 21 { 22 if(i==1) printf("%d",1); 23 else printf(" %d",i); 24 } 25 } 26 else if(m==2) 27 { 28 for(int i=1; i<=n ;i++) 29 { 30 if(i==1) printf("%d",n); 31 else if(i==n) printf(" %d\n",1); 32 else printf(" %d",i); 33 } 34 } 35 else 36 { 37 int m1=m-2; 38 printf("%d",n-m1); 39 int cnt=1; 40 int j; 41 for(j=2; j<=n-1-m1; j++) 42 { 43 printf(" %d",j); 44 } 45 for(int i=j; i<=n; i++) 46 { 47 if(i==n) printf(" 1\n"); 48 else printf(" %d",i+1); 49 } 50 } 51 } 52 return 0; 53 }