题目
原题链接:Chess Placing
题意
给出n/2个数字。要求每个数字同时站在奇/偶位置上。问最少要挪多少才能实现。
排序后分别计算奇偶各需要多少步即可。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,s[100];
cin>>n;
for(int i=0;i<n/2;i++){
cin>>s[i];
}
sort(s,s+n/2);
int cnt1=0,cnt2=0,t=2;
for(int i=0;i<n/2;i++){
cnt1+=abs(s[i]-t);
t+=2;
}
t=1;
for(int i=0;i<n/2;i++){
cnt2+=abs(s[i]-t);
t+=2;
}
printf("%d\n",min(cnt1,cnt2));
return 0;
}