Codeforces Round #175 (Div. 2) A. Slightly Decreasing Permutations(构造,简单)
Permutation p is an ordered set of integers p1, p2, ..., pn, consisting of n distinct positive integers, each of them doesn't exceed n. We'll denote the i-th element of permutation p as pi. We'll call number n the size or the length of permutation p1, p2, ..., pn.
The decreasing coefficient of permutation p1, p2, ..., pn is the number of such i (1 ≤ i < n), that pi > pi + 1.
You have numbers n and k. Your task is to print the permutation of length n with decreasing coefficient k.
The single line contains two space-separated integers: n, k (1 ≤ n ≤ 105, 0 ≤ k < n) — the permutation length and the decreasing coefficient.
In a single line print n space-separated integers: p1, p2, ..., pn — the permutation of length n with decreasing coefficient k.
If there are several permutations that meet this condition, print any of them. It is guaranteed that the permutation with the sought parameters exists.
5 2
1 5 2 4 3
3 0
1 2 3
3 2
3 2 1
1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 #include <set> 5 #include <map> 6 #include <vector> 7 #include <stack> 8 #include <queue> 9 #include <cmath> 10 #include <cstdio> 11 #include <cstring> 12 #include <algorithm> 13 #include <utility> 14 using namespace std; 15 #define ll long long 16 #define cti const int 17 #define ctll const long long 18 #define dg(i) cout << '*' << i << endl; 19 20 int main() 21 { 22 int n, k; 23 while(scanf("%d %d", &n, &k) != EOF) 24 { 25 if(k == 0) 26 { 27 for(int i = 1; i < n; i++) cout << i << ' '; 28 cout << n << endl; 29 continue; 30 } 31 cout << n--; 32 while(k-- > 1) cout << ' ' << n--; 33 for(int i = 1; n--; i++) cout << ' ' << i; 34 cout << endl; 35 } 36 return 0; 37 }