baru003のブログ

baruの雑記兼備忘録

AtCoder Regular Contest #004 #A

・問題リンクA - 2点間距離の最大値 ( The longest distance )


・コメント
前回はc++で実装を試みた初参戦のAtCoderでしたが、今回はJavaを使って本コンテストに参加してみました。感想は、前回同様1問しか解くことはできませんでしたが、充実した1時間30分でした。あまりJavaでプログラミングをした経験がなかったので、多少時間もかかってしまいました。問題を解きながらテレビを見てただなんて(ry
実は、B問題にも取り組んではいたのですが手元ですら最小の方の実装ができずそのまま終わってしまいました。次回は、もう1問ACできたらと思います。

・ソース

import java.util.Scanner;

public class A {

	private static double distance(double x1, double y1, double x2, double y2) {
		double dx = x1 - x2;
		double dy = y1 - y2;
		return Math.sqrt(dx * dx + dy * dy);
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		double disx[] = new double[n + 1];
		double disy[] = new double[n + 1];
		// input
		for (int i = 0; i < n; i++) {
			disx[i] = sc.nextDouble();
			disy[i] = sc.nextDouble();
		}
		double dis = distance(disx[0], disy[0], disx[1], disy[1]);
		// calc
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (dis < distance(disx[i], disy[i], disx[j], disy[j])) {
					dis = distance(disx[i], disy[i], disx[j], disy[j]);
				}
			}
		}
		// output
		System.out.println(dis);
	}
}