南邮 OJ 1070 南邮仙林自行车停放场

南邮仙林自行车停放场

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 465            测试通过 : 95 

比赛描述

好消息!南邮规划建设自行车停放场,现已选定多个场地,它们均为规则多边形。现请你帮助学校确定哪块场地面积最大,这里以鼎山之顶为平面坐标原点,按顺时针或逆时针给出顶点坐标。



输入

输入数据中含有一些多边形场地(1≤数量≤20),按输入顺序编号(从1开始)。每个多边形场地的第一行数据n3n10),后续n行分别给出顶点的平面坐标(平面两个坐标的绝对值≤50)。

输出

输出面积最大的多边形场地序号。当面积最大的多边形场地有多个时,输出这些场地中的最小序号

样例输入

2
3
0 0
0 1
1 0
4
0 0
0 1
1 1
1 0

样例输出

2

题目来源

“IBM南邮杯”个人赛2009




#include<iostream>
using namespace std;
int main(){
	int n,m,i,j,max_no;
	double p[10][2];
	double area,max_area=0;
	cin>>n;
	for(j=1;j<=n;++j){
		cin>>m;
		for(i=0;i<m;++i){
			cin>>p[i][0]>>p[i][1];
		}
		area = p[m-1][0]*p[0][1] - p[0][0]*p[m-1][1];
		for(i=0;i<m-1;++i){
			area += p[i][0]*p[i+1][1]-p[i+1][0]*p[i][1];
		}
		area = area>=0?area:-area;
		if(max_area<area){
			max_area = area;
			max_no = j;
		}
	}
	cout<<max_no<<endl;
}





你可能感兴趣的:(ACM,多边形面积,南邮OJ)