描述
由于猪价暴涨,JM准备圈地养猪。
但是猪崽从哪来呢?当然是去抓野山猪咯~
已知每一头野山猪的坐标,现在JM需要用围栏围成一个矩形,在矩形内的猪就都属于JM了。围起来的野山猪当然是越多越好啦,贪心的JM想把所有的野山猪给围起来。但是JM不知道得准备多长的围栏。你能帮JM吗计算一下至少需要多长的围栏,围成的矩形能够把所有的野山猪围起来。
注意:
围栏的四个角必须在整数坐标点上,而且有野山猪的点是不能够构建围栏的~
所围矩形的边必须平行于x或者y轴。
输入
第一行输入一个整数nn,表示野山猪的头数
接下来nn行,每行输入两个整数x\ yx y,表示野山猪所处的位置(x,y)(x,y)
输出
输出一个整数,表示需要的围栏长度
样例
输入复制
4
0 0
1 1
2 2
3 3
输出复制
20
输入复制
5
44 62
34 69
24 78
42 44
64 10
输出复制
224
输入复制
4
1 100
1 0
1 -100
1 0
输出复制
408
提示
找到边界即可,注意,边界上不能有猪
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1000, inf = 1e9;
int n;
int maxa = -inf, mina = inf, maxb = -inf, minb = inf;
int main(){
cin >> n;
while (n -- ){
int x, y; cin >> x >> y;
maxa = max(maxa, x);
mina = min(mina, x);
maxb = max(maxb, y);
minb = min(minb, y);
}
int da = maxa - mina;
int db = maxb - minb;
cout << 2 * ((da + 2) + (db + 2))<< endl;
return 0;
}