結果

問題 No.306 さいたま2008
ユーザー tsunabit
提出日時 2020-03-27 02:13:14
言語 Java11
(openjdk 11.0.6)
結果
WA   .
実行時間 -
コード長 896 Byte
コンパイル時間 3,702 ms
使用メモリ 41,888 KB
最終ジャッジ日時 2020-03-27 02:13:24

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
0_0.txt AC 134 ms
38,124 KB
0_1.txt AC 134 ms
38,088 KB
0_2.txt AC 130 ms
38,092 KB
1_0.txt AC 131 ms
40,016 KB
1_1.txt AC 133 ms
40,104 KB
1_2.txt AC 137 ms
38,092 KB
1_3.txt AC 129 ms
38,116 KB
1_4.txt AC 128 ms
38,048 KB
1_5.txt AC 132 ms
38,088 KB
1_6.txt AC 132 ms
41,764 KB
2_0.txt AC 128 ms
38,100 KB
2_1.txt AC 133 ms
38,096 KB
2_2.txt AC 133 ms
38,112 KB
2_3.txt AC 128 ms
38,100 KB
2_4.txt AC 128 ms
40,016 KB
2_5.txt AC 131 ms
38,080 KB
2_6.txt AC 134 ms
38,116 KB
3_0.txt AC 136 ms
38,096 KB
3_1.txt AC 138 ms
40,012 KB
3_2.txt AC 135 ms
38,108 KB
3_3.txt WA -
3_4.txt WA -
system_test1.txt AC 131 ms
38,092 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.*;
import java.io.*;
import java.math.*;

public class No306 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int xa=sc.nextInt(), ya=sc.nextInt(),xb=sc.nextInt(), yb=sc.nextInt();
//		double t = yb, b = ya;
//		double t = ya, b = yb;
		double t, b;
		if(ya > yb) {
			t = ya;
			b = yb;
		}else {
			t = yb;
			b = ya;
		}
		while(t-b > 0.000001) {
			double p0 = (t*2+b)/3;
			double p1 = (t+b*2)/3;
			if(search(xa,ya,xb,yb,p0) < search(xa,ya,xb,yb,p1)) {
				b = p1;
			}else {
				t = p0;
			}
		}
		
		if(search(xa,ya,xb,yb,t) < search(xa,ya,xb,yb,b)) {
			System.out.println(t);
		}else {
			System.out.println(b);
		}
 	}
	public static double search(int xa, int ya, int xb, int yb, double p) {
		double a = Math.sqrt(Math.pow(xa, 2) + Math.pow(ya-p, 2));
		double b = Math.sqrt(Math.pow(xb, 2) + Math.pow(yb-p, 2));
		return a+b;
	}
}
0