제출 #576367

#제출 시각아이디문제언어결과실행 시간메모리
576367BenqtBalloons (CEOI11_bal)C++17
0 / 100
2083 ms30124 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int INF = 1000000000; const ll LINF = (ll) INF * (ll) INF; const ld DINF = (ld) INF * (ld) INF; int main() { int n; cin >> n; vector<pair<ld, ld>> arr(n); for (int i=0; i<n; i++) { cin >> arr[i].first; //x coord cin >> arr[i].second; //radius } vector<pair<ld, ld>> q; q.push_back(arr[0]); for (int i=1; i<n; i++) { while (true) { //cout << "loop" << endl; for (pair<ld, ld> k : q) { cout << k.first << " " << k.second << ") "; } cout << endl; if (q.empty()) { break; } pair<ld, ld> last = q[i-1]; ld h1 = arr[i].first - last.first; ld r1 = (h1 * h1)/(4 * last.second); if (q.size() == 1) { arr[i].second = min(arr[i].second, r1); break; } pair<ld, ld> second_last = q[i-2]; ld h2 = arr[i].first - second_last.first; ld r2 = (h2 * h2)/(4 * second_last.second); //cout << "r1r2 " << r1 << " " << r2 << endl; if (r2 < r1) { q.pop_back(); } else { break; } arr[i].second = min(arr[i].second, min(r2, r1)); } cout << setprecision(20) << endl; q.push_back(arr[i]); } for (int i=0; i<n; i++) { cout << arr[i].second << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...