답안 #703214

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
703214 2023-02-26T14:58:24 Z a_aguilo Balloons (CEOI11_bal) C++14
100 / 100
524 ms 9548 KB
#include<bits/stdc++.h>

using namespace std;

int n;

long double getRad(long double d, long double r){
	long double result = (long double)d*((long double)d/(4*r));
	return result;
}

int main(){
	cin >> n;
	long double radius[n];
	int position[n];
	for(int i = 0; i < n; ++i) cin >> position[i] >> radius[i];
	stack<pair<int, long double>> MyStack;
	MyStack.push({position[0], radius[0]});
	for(int i = 1; i < n; ++i){
		int lastIdx = MyStack.size()-1;
		radius[i] = min(radius[i], getRad(position[i]-MyStack.top().first, MyStack.top().second));
		while(!MyStack.empty() and radius[i] >= MyStack.top().second){
			MyStack.pop();
			if(!MyStack.empty()) radius[i] = min(radius[i], getRad(position[i]-MyStack.top().first, MyStack.top().second));
		}
		MyStack.push({position[i], radius[i]});
	}
	for(int i = 0; i < n; ++i){
		cout << fixed << setprecision(3) << radius[i] << endl;
	}
	return 0;
}

Compilation message

bal.cpp: In function 'int main()':
bal.cpp:20:7: warning: unused variable 'lastIdx' [-Wunused-variable]
   20 |   int lastIdx = MyStack.size()-1;
      |       ^~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 212 KB 505 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 340 KB 2000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 51 ms 832 KB 20000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 128 ms 2048 KB 50000 numbers
2 Correct 133 ms 2536 KB 49912 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 258 ms 3272 KB 100000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 307 ms 3836 KB 115362 numbers
2 Correct 320 ms 5840 KB 119971 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 398 ms 4904 KB 154271 numbers
2 Correct 516 ms 9304 KB 200000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 496 ms 5836 KB 200000 numbers
2 Correct 524 ms 9548 KB 199945 numbers