求一个长度为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;
}