求一个长度为2n的序列,满足Σ|a2i−a2i−1|−|Σa2i−a2i−1|=2k

这种带绝对值的题目套路就是把绝对值拆开。看看n=2时候的情况

[1,2,3,4]

|2−1|+|4−3|−|2−1+4−3|=0

swap(1,2)=>

|1−2|+|4−3|−|1−2+4−3|=2

也就是交换一组产生2的贡献,直接交换k组就好了。

#include<iostream>
using namespace std;
/* */
int main(){
    int n,k; cin>>n>>k;
    for(int i=1;i<=n;++i){
        if(k>0) cout<<i*2<<" "<<i*2-1<<" ";
        else cout<<i*2-1<<" "<<i*2<<" ";
        k--;
    }return 0;
}