士兵排队问题
写学校OJ写 emo 了 论 一个半点的心路历程
心路历程
FINAL 解法
参考基础课货仓选址 yxc yyds
ac代码
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int posx[10005];
int posy[10005];
int n;
void pr()
{
for(int i = 0;i < n;i ++)
cout << posx[i] - i << ' ';
cout << endl;
}
int main(){
while (scanf("%d",&n)!=EOF){
for (int i=0;i<n;i++){
scanf("%d%d",&posx[i],&posy[i]);
}
sort(posx,posx+n);
sort(posy,posy+n);
//pr();
for (int j= 1;j<n + 1;j++){
posx[j] = posx[j] - j;
}
sort(posx, posx + n);
int mx = posx[n / 2];
int my = posy[n / 2];
int count = 0;
for (int k = 0; k < n; k++){
count = count + abs(posx[k] - mx);
count = count + abs(posy[k] - my);
}
printf("%d",count);
}
return 0;
}