百度在线笔试题-裁减网格纸
2015-09-28 15:48
351 查看
度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
[b]输入描述:[/b]
[b]输出描述:[/b]
[b]输入例子:[/b]
[b]输出例子:[/b]
[b]输入描述:[/b]
第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表示网格上的点
[b]输出描述:[/b]
一行输出最小面积
[b]输入例子:[/b]
2 0 0 0 3
[b]输出例子:[/b]
9
// Java版本
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
/*
2 0 0 0 3
*/
public static int min(int a[]){
int min=Integer.MAX_VALUE;
for(int i=0; i<a.length; i++){
if(a[i]<=min){
min=a[i];
}
}
return min;
}
public static int max(int a[]){
int max=Integer.MIN_VALUE;
for(int i=0; i<a.length; i++){
if(a[i]>=max){
max=a[i];
}
}
return max;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()){
int n=input.nextInt();
int x[]=new int
;
int y[]=new int
;
for(int i=0; i<n; i++){
x[i]=input.nextInt();
y[i]=input.nextInt();
}
int minx=min(x);
int maxx=max(x);
int miny=min(y);
int maxy=max(y);
int xlen=maxx-minx;
int ylen=maxy-miny;
if(ylen>xlen){
BigInteger bigInteger=new BigInteger(String.valueOf(ylen));
System.out.println(bigInteger.multiply(bigInteger));
}else{
BigInteger bigInteger=new BigInteger(String.valueOf(xlen));
System.out.println(bigInteger.multiply(bigInteger));
}
}
input.close();
}
}
相关文章推荐
- C++11标准中常用到的各种算法汇总.
- Android BaseAdapter
- DB2 基本概念
- Apache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口
- IntelliJ IDEA的高效快捷键设置
- 二叉搜索树与双向链表
- HDU 5475 2015 ACM/ICPC Asia Regional Shanghai Online An easy problem(线段树)
- Android手机连接蓝牙打印机连接不上的问题
- ios9企业证书提示“未受信任的企业级开发者”解决方法
- Linux内核编程初探:块设备驱动程序——Ramdisk
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 LCT
- 跨域访问http接口的使用
- 平时用的到的方法
- 结对编程初体验
- Java中异常处理之try和catch代码块的使用
- hadoop2.7.0集群,使用中遇到的bug及解决办法
- 如何在webview中设置自定义字体
- Slider滑竿+动画
- ASP.NET MVC使用Bootstrap系列(1)——开始使用Bootstrap
- UVA 题目10285 - Longest Run on a Snowboard(DP+记忆化搜索)