题目描述
在一个划分成网格的操场上, nn 个士兵散乱地站在网格点上,由整数坐标 (x,y)(x,y) 表示。士兵们可以沿网格边上、下左右移动一步,但在同时刻任一网格点上只能有名士兵。按照军官的命令,们要整齐地列成个水平队列,即排成 队列,即排成 (x,y),(x+1,y), …,(x+n-1,y)(x,y),(x+1,y),…,(x+n−1,y)。请求出如何选择 xx 和 yy 的值才能使士兵们以最少的总移动步数排成一列。
输入格式
输入的第一行是一个整数,代表士兵数 nn。
第 22 到 (n + 1)(n+1) 行,每行 22 个整数,第 (i + 1)(i+1) 行的整数 x_i, y_ix i ,y i代表第 ii 个士兵的坐标。
输出格式
输出一行一个整数,代表答案。
输入输出样例
输入 #1
5
1 2
2 2
1 3
3 -2
3 3
输出 #1
8
说明/提示
对于 100%100% 的数据,保证 1 \leq n \leq 100001≤n≤10000,-10000 \leq x,y \leq 10000−10000≤x,y≤10000。
#include<bits/stdc++.h>
using namespace std;
int x[10500],y[10500];
int main

给定n个士兵在网格上的位置,求解如何通过最小移动步数让他们排列成水平队列。士兵只能沿网格边移动,同一网格点上不能有多个士兵。输出最少总移动步数。
&spm=1001.2101.3001.5002&articleId=105029150&d=1&t=3&u=2c67823d377d4f86a68f71417eb86c75)
3080

被折叠的 条评论
为什么被折叠?



