時は2011年,世界ではG〇〇gle社やT〇pC○der社によってプログラミングコンテストが頻繁に開催されており, 多くのプログラマが参加している. 東京大学の学生である私もその一人であり,kita_masaというIDで活動している.
今日も友人の(iwi)とともにT〇pC〇der社のコンテストに参加することにした. T〇pC〇der社のコンテストは75分でeasy,medium,hardの3問の問題を解く形式で行われている.
まずはeasy問題に取り掛かろう. 私は英語があまり得意ではないので,スピード勝負なeasy問題では基本的に問題文は読まずにサンプル入出力から問題を推定している. サンプルから推定するに,どうやら今日の問題は与えられた二点間の距離を出力するだけのようだ.
入力は一行からなり,4つの実数 x1, y1, x2, y2 を含む.
二点 (x1, y1), (x2, y2) 間のユークリッド距離を出力せよ. 答えは 10 - 5 までの絶対誤差が許容される.
入力例1:
0.0 0.0 1.0 1.0
入力例 1 に対する出力の例:
1.41421356
C++:
#include <cstdio> #include <cmath> int main() { double x1, y1, x2, y2; scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2); double s = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); printf("%.8f\n", s); return 0; }
Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double x1 = sc.nextDouble(); double y1 = sc.nextDouble(); double x2 = sc.nextDouble(); double y2 = sc.nextDouble(); double s = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); System.out.printf("%.8f%n", s); } }