Submission #2410981


Source Code Expand

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int N; long double H, W;

int main() {
	cin >> N;
	for (int i = 1; i <= N; i++) {
		cin >> H >> W;
		long double L = 0, R = sqrtl(H*H + W*W), M, maxn = 0;

		for (int j = 0; j < 80; j++) {
			M = (L + R) / 2;
			long double P1 = 0; if (M >= H) P1 = sqrtl(M*M - H*H);
			long double P2 = 0; if (M >= W) P2 = sqrtl(M*M - W*W);
			long double P3 = sqrtl((W - P1)*(W - P1) + (H - P2)*(H - P2));
			maxn = max(maxn, min({ sqrtl(H*H + P1*P1),sqrtl(W*W + P2*P2),P3 }));
			if (M < P3) { L = M; }
			else { R = M; }
		}
		printf("%.12Lf\n", maxn);
	}
	return 0;
}

Submission Info

Submission Time
Task E - マッサージチェア2015
User E869120
Language C++14 (GCC 5.4.1)
Score 200
Code Size 660 Byte
Status AC
Exec Time 8 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 200 / 200
Status
AC × 16
Set Name Test Cases
All 00_sample.txt, 10_squares.txt, 11_maxw.txt, 12_maxh.txt, 20_corner.txt, 21_corner.txt, 22_corner.txt, 23_corner.txt, 24_corner.txt, 30_small.txt, 40_random.txt, 41_random.txt, 42_random.txt, 50_corner.txt, 51_corner.txt, 52_corner.txt
Case Name Status Exec Time Memory
00_sample.txt AC 1 ms 256 KB
10_squares.txt AC 8 ms 256 KB
11_maxw.txt AC 8 ms 256 KB
12_maxh.txt AC 8 ms 256 KB
20_corner.txt AC 8 ms 256 KB
21_corner.txt AC 8 ms 256 KB
22_corner.txt AC 8 ms 256 KB
23_corner.txt AC 8 ms 256 KB
24_corner.txt AC 8 ms 256 KB
30_small.txt AC 7 ms 256 KB
40_random.txt AC 8 ms 256 KB
41_random.txt AC 8 ms 256 KB
42_random.txt AC 8 ms 256 KB
50_corner.txt AC 8 ms 256 KB
51_corner.txt AC 8 ms 256 KB
52_corner.txt AC 8 ms 256 KB