给定n和k,2k ≤ n.
求一个长度为2n排列满足
.
http://codeforces.com/problemset/problem/359/B
假定一个排列1, 2,3, ..2n这样直接计算得到答案为0.
我们任意改变相邻的两个数2*i - 1, 2*i, 式子前半部分不会变,右边将会减少2.
所以我们改变k个这个的相邻对就可以了。
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
for(int i = 1; i <= k; i++) cout << 2 * i << " " << 2 * i - 1 << " ";
for(int i = k + 1; i <= n; i++ ) cout << 2 * i - 1 << " " << 2 * i << " ";
return 0;
}