Submission #566833

#TimeUsernameProblemLanguageResultExecution timeMemory
566833indBalloons (CEOI11_bal)C++14
90 / 100
671 ms8068 KiB
#include <bits/stdc++.h> using namespace std; void compare(int position1, double radius1, int position2, double &radius2) { double current = (double)(position2 - position1) * (double)(position2 - position1) / (4 * radius1); if (radius2 - current >= 0.001) radius2 = current; } int main() { int n; cin >> n; vector<int> positions(n); vector<double> radii(n); stack<int> indexes; for (int i=0; i<n; i++) { cin >> positions[i]; double radius; cin >> radius; while (indexes.size() > 0) { compare(positions[indexes.top()], radii[indexes.top()], positions[i], radius); bool needBreak = radii[indexes.top()] - radius >= 0; if (needBreak) break; indexes.pop(); } indexes.push(i); cout << fixed << setprecision(3); cout << radius << endl; radii[i] = radius; } return 0; }
#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...