标签:style blog color os width io
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]<<‘ ‘;
}
codeforces A. Slightly Decreasing Permutations 题解,码迷,mamicode.com
codeforces A. Slightly Decreasing Permutations 题解
标签:style blog color os width io
原文地址:http://blog.csdn.net/kenden23/article/details/24841169