답안 #866262

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
866262 2023-10-25T16:30:32 Z dio_2 Balloons (CEOI11_bal) C++17
50 / 100
2000 ms 7092 KB
#include<bits/stdc++.h>
using namespace std;

using ld = long double;
using ll = long long;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int N;
	cin >> N;
	
	vector<ll> x(N), r(N);
	vector<ld> ans(N);
	
	for(int i = 0;i < N;i++){
		cin >> x[i] >> r[i];
	}
	
	ans[0] = r[0];
	cout << fixed << setprecision(3) << ans[0] << '\n';
	
	#define X first
	#define Y second
	auto d = [&](pair<ld, ld> A, pair<ld, ld> B)->ld{
		return (A.X-B.X)*(A.X-B.X)+(A.Y-B.Y)*(A.Y-B.Y);
	};
	
	/*
	3
	0 9
	8 1
	13 7
	*/
	auto Calc = [&](int i, int j)->ld{
		ld radius_j = ans[j];
		pair<ld, ld> centre_j = {x[j], radius_j};
	
		ld lo = 0, hi = r[i], mid;
		
		//~ for(int rep = 0;rep < 70;++rep){
			//~ mid = (lo + hi) / 2;
			//~ ld radius_i = mid;
			//~ pair<ld, ld> centre_i = {x[i], radius_i};
			//~ if(d(centre_i, centre_j) >= (radius_i + radius_j) * (radius_i + radius_j))
				//~ lo = mid;
			//~ else 
				//~ hi = mid;
		//~ }
		
		//~ return (lo + hi) / 2;
		return (ld(x[i]*x[i]+x[j]*x[j]-2*x[i]*x[j])) / (4 * radius_j);
	};
	
	for(int i = 1;i < N;i++){
		ld use = r[i];
		for(int j = 0;j < i;j++){
			use = min(use, Calc(i, j));
		}
		ans[i] = use;
		cout << fixed << setprecision(3) << use << '\n';
	}
	
	return 0;
}

Compilation message

bal.cpp: In lambda function:
bal.cpp:38:16: warning: variable 'centre_j' set but not used [-Wunused-but-set-variable]
   38 |   pair<ld, ld> centre_j = {x[j], radius_j};
      |                ^~~~~~~~
bal.cpp:40:6: warning: unused variable 'lo' [-Wunused-variable]
   40 |   ld lo = 0, hi = r[i], mid;
      |      ^~
bal.cpp:40:14: warning: unused variable 'hi' [-Wunused-variable]
   40 |   ld lo = 0, hi = r[i], mid;
      |              ^~
bal.cpp:40:25: warning: unused variable 'mid' [-Wunused-variable]
   40 |   ld lo = 0, hi = r[i], mid;
      |                         ^~~
bal.cpp: In function 'int main()':
bal.cpp:26:7: warning: variable 'd' set but not used [-Wunused-but-set-variable]
   26 |  auto d = [&](pair<ld, ld> A, pair<ld, ld> B)->ld{
      |       ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB 505 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 344 KB 2000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 748 ms 1228 KB 20000 numbers
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2037 ms 2932 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2043 ms 3864 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2033 ms 4520 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2021 ms 6240 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2058 ms 7092 KB Time limit exceeded
2 Halted 0 ms 0 KB -