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
这种题目难就难在下标处理。当然题目本身不难。
void SlightlyDecreasingPermutations()
{
int n, k;
cin>>n>>k;
int *A = new int[n];
for (int i = 0; i < n - k - 1; i++)
{
A[i] = i + 1;
}
for (int i = n - k - 1, j = n; i < n; i++, j--)
{
A[i] = j;
}
for (int i = 0; i < n; i++)
{
cout<<A[i]<<' ';
}
delete [] A;
}
void SlightlyDecreasingPermutations_2()
{
int n, k;
cin>>n>>k;
int *A = new int[n];
for(int i = 0; i < n; ++i) A[i] = i+1;
reverse(A,A+k+1);
for(int i = 0; i < n; ++i) cout<<A[i]<<' ';
}