#U1516OB3. Field Reduction
Field Reduction
Farmer John 的 N 头奶牛 (3≤N≤50,000) 都位于他的二维平面中的不同位置。FJ 想用一个边平行于 x 轴和 y 轴的矩形栅栏围住所有的奶牛,并且他希望这个栅栏尽可能小,以便它包含每一头奶牛(允许边界上的奶牛)。
不幸的是,由于上个季度的牛奶产量低,FJ 的预算很紧。因此,如果可能的话,他想建造一个更小的围栏围栏,并且他愿意从他的牛群中出售一头奶牛来实现这一目标。
请帮助 FJ 计算从牛群中移走一头奶牛后他可以用栅栏围起来的最小可能区域(然后为剩余的 N-1 头奶牛建造最紧密的围墙)。
对于这个问题,请将奶牛视为点,将栅栏视为四个线段的集合(即,不要将奶牛视为“单位正方形”)。请注意,答案可能为零,例如,如果所有剩余的奶牛最终都站在一条共同的垂直或水平线上。最后,请注意,由于 N 可能非常大,您可能需要小心解决这个问题,以确保您的程序运行得足够快!
输入格式(文件 reduce.in):
输入的第一行包含 N。接下来的 N 行每行包含两个整数,指定牛的位置。奶牛位置是 1…40,000 范围内的正整数。
输出格式(文件 reduce.out):
写出一个整数,指定 FJ 从牛群中移走一头精心挑选的奶牛后可以用栅栏围起来的最小区域。
SAMPLE INPUT:
4
2 4
1 1
5 2
17 25
SAMPLE OUTPUT:
12