AOJ0079 Area of Polygon

問題リンク Area of Polygon

  • 解法

問題文にヘロンの公式が載っていますがスルーしました。
多角形の面積は外積を使って求めることができます。
ググればすぐに引っ掛かります。

  • ソース
import java.util.Scanner;

//Area of Polygon
public class AOJ0079 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double[][] p = new double[20][2];
		int n = 0;
		while(sc.hasNext()){
			String s[] = sc.next().split(",");
			p[n][0]=Double.parseDouble(s[0]);
			p[n][1]=Double.parseDouble(s[1]);
			n++;
		}
		double a = 0;
		for(int i=0;i<n;i++){
			double x1 = p[i][0];
			double y1 = p[i][1];
			double x2 = p[(i+1)%n][0];
			double y2 = p[(i+1)%n][1];
			a += x1*y2-x2*y1;
		}
		System.out.println(Math.abs(a/2));
	}
}