codeforces A. Slightly Decreasing Permutations 题解

时间:2014-07-22 23:00:15   收藏:0   阅读:312

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.

Input

The single line contains two space-separated integers: n,?k (1?≤?n?≤?105,?0?≤?k?<?n) — the permutation length and the decreasing coefficient.

Output

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.

Sample test(s)
input
5 2
output
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]<<‘ ‘;
}



codeforces A. Slightly Decreasing Permutations 题解,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!