hdoj 2036改革の春風が吹いている.

1595 ワード

改革の春風が吹き荒れる
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22698    Accepted Submission(s): 11741
Problem Description
「改革の春風が吹いている.
いいえACは大丈夫です.
どうしても実家に帰ることができず、
もう1ムーの3分の土地がある.
ありがとう!(バンド奏楽)」
ところで、一部の学生は心理状態がとても良くて、毎日ゲームを知っていて、今回の試験はこんなに簡単な問題で、雲の中で霧の中で、しかも、意外にもこんなにいくつかの油の詩を打ちに来ました.
いいですよ.先生の責任はあなたの問題を解決することです.畑を作りたい以上、あなたを分けます.
この田は浙江省温州市蒼南県霊渓鎮林家舗子村に位置し、多角形の土地で、もともとlinleだったが、今すぐあげるつもりだ.しかし、何事もそんなに簡単ではありません.まず、この土地の面積を教えてください.答えが正しければ、本当にこの土地を手に入れることができます.
困ったでしょう?あなたに知ってもらうには、畑を植えるにもACの知識が必要です!これからもしっかり練習しましょう...
 
 
Input
入力データには複数のテストインスタンスが含まれており、各テストインスタンスは1行を占め、各行の最初は整数n(3<=n<=100)であり、多角形の辺数(もちろん頂点数)を表し、次いで反時計回りの順序で与えられたn個の頂点の座標(x 1,y 1,x 2,y 2...xn,yn)であり、問題を簡略化するために、ここでのすべての座標は整数で表される.
入力データのすべての整数は32ビット整数の範囲内であり、n=0はデータの終了を示し、処理しない.
 
 
Output
各テストインスタンスについて、対応するポリゴン面積を出力し、小数点以下の小数点まで正確にします.
各インスタンスの出力は1行を占めます.
 
 
Sample Input
3 0 0 1 0 0 1
4 1 0 0 1 -1 0 0 -1
0
 
 
Sample Output
0.5
2.0
 
#include<stdio.h>
int main()
{
	int n,m,j,i,s;
	double sum;
	double a[110],b[110];
	while(scanf("%d",&n),n)
	{
		for(i=0;i<n;i++)
		{
			scanf("%lf%lf",&a[i],&b[i]);
		}
		a[n]=a[0];b[n]=b[0];
		sum=0;
		for(i=1;i<=n;i++)
		sum+=a[i-1]*b[i]-a[i]*b[i-1];
		printf("%.1lf
",sum/2); } return 0; }