Submission #1275855


Source Code Expand

#include "bits/stdc++.h"
#include<unordered_map>
#include<unordered_set>
#pragma warning(disable:4996)
using namespace std;
using ld = long double;
const ld eps = 1e-9;

//// < "d:\d_download\visual studio 2015\projects\programing_contest_c++\debug\a.txt" > "d:\d_download\visual studio 2015\projects\programing_contest_c++\debug\b.txt"


int main() {
	int N; cin >> N;
	while (N--) {
		ld H, W; cin >> H>> W;
		if (H> W)swap(H, W);
		
		assert(H <= W);
		ld ans = sqrt(H*H + (W / 2)*(W / 2));
		if (H / sqrt(3) * 2 < W) {
			ans= sqrt(H*H + (W / 2)*(W / 2));
		}
		else {
			ld amin = W+eps;
			ld amax = sqrt(W*W + H*H);
			int num = 50;
			while (num--) {
				ld amid = (amin + amax) / 2;
				ld h = sqrt(amid*amid - W*W);
				ld w = sqrt(amid*amid - H*H);
				if (amid*amid < (W - w)*(W - w) + (H - h)*(H - h)) {
					amin = amid;
				}
				else {
					amax = amid;
				}
			}
			ans = amin;
		}
		cout <<setprecision(10)<<fixed<< ans << endl;
		
	}
	return 0;
}

Submission Info

Submission Time
Task E - マッサージチェア2015
User yuma000
Language C++14 (GCC 5.4.1)
Score 200
Code Size 1009 Byte
Status AC
Exec Time 7 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 7 ms 256 KB
11_maxw.txt AC 6 ms 256 KB
12_maxh.txt AC 6 ms 256 KB
20_corner.txt AC 6 ms 256 KB
21_corner.txt AC 6 ms 256 KB
22_corner.txt AC 6 ms 256 KB
23_corner.txt AC 6 ms 256 KB
24_corner.txt AC 6 ms 256 KB
30_small.txt AC 5 ms 256 KB
40_random.txt AC 6 ms 256 KB
41_random.txt AC 5 ms 256 KB
42_random.txt AC 5 ms 256 KB
50_corner.txt AC 6 ms 256 KB
51_corner.txt AC 6 ms 256 KB
52_corner.txt AC 6 ms 256 KB