A permutation p is an ordered group of numbers p1, p2, ..., pn, consisting of n distinct positive integers, each is no more than n. We'll define number n as the length of permutation p1, p2, ..., pn.
Simon has a positive integer n and a non-negative integer k, such that 2k ≤ n. Help him find permutation a of length 2n, such that it meets this equation: .
Input
The first line contains two integers n and k (1 ≤ n ≤ 50000, 0 ≤ 2k ≤ n).
Output
Print 2n integers a1, a2, ..., a2n — the required permutation a. It is guaranteed that the solution exists. If there are multiple solutions, you can print any of them.
Examples
input
Copy
1 0
output
Copy
1 2
input
Copy
2 1
output
Copy
3 2 1 4
input
Copy
4 0
output
Copy
2 7 4 6 1 3 5 8
题意:
要你用1-2*n的数构造数列,构造的数列满足上面的公式。
思路:
这道题我是没思路,我是看了题解才会的,其实我们只要求一对差的绝对值为k的就好但必须是a2*j-1<aj,这是有公式决定的其余的从大到小构造就好,(k-(-k)=2k);
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#define LL long long
using namespace std;
int main()
{
int n,k;
scanf("%d%d",&n,&k);
if(k==0)
{
for(int i=2*n;i>=1;i--)
{
if(i!=1)
printf("%d ",i);
else
printf("%d\n",i);
}
}
else
{
int j=2*n-k;
printf("%d %d ",j,2*n);
for(int k=2*n-1;k>=1;k--)
{
if(k!=j)
{
if(k!=1)
printf("%d ",k);
else
printf("%d\n",k);
}
}
}
return 0;
}