CF985A Chess Placing【思维】
【链接】:CF985A
【题意】:给你n和n/2个数ai,每个ai和奇数、偶数比较距离(注意选了奇数,偶数的距离就不要算了,反之同理),求最小的答案。
【代码】:
#include <iostream>
#include<queue>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;
#define N 100010
#define M 2005
const int INF = 0x3f3f3f3f;
#define rep(i,a,b) for(int i=(a); i<(b); i++)
#define ll long long
int n,m,x,y;
int a[120];
int main()
{
int ans=0,x=0,y=0;
scanf("%d",&n);
n/=2;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1); //必须排序QAQ
for(int i=1;i<=n;i++)
{
x += abs(2*i-1 - a[i]);
y += abs(2*i - a[i]);
//printf("odd=%d even=%d ai=%d\n",2*i-1,2*i,a[i]);
//printf("%d %d\n",2*i-1 - a[i], 2*i - a[i]);
}
//printf("x=%d y=%d\n",x,y);
printf("%d\n",min(x,y));
}