Submission #1300760

#TimeUsernameProblemLanguageResultExecution timeMemory
1300760filip1111Balloons (CEOI11_bal)C++20
100 / 100
1284 ms4392 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int inf = 1e9;
const double S = 1.3;
double kw(double a){
    return a * a;
}
int main(){
    int n;
    cin >> n;
    vector<pair<int,double>>V;
    vector<pair<int,double>>V2;
    double last = 0;
    for(int i = 0; i < n; i++){
        int x;
        double r;
        cin >> x >> r;
       
        for(int jj = (int)V2.size() - 1; jj >= max((int)V.size()-20,0); jj--){
            auto j = V2[jj];
            r = min(r, kw(x - j.first) / (4 * j.second));
        }
        for(auto j : V){
            r = min(r, kw(x - j.first) / (4 * j.second));
        }
        
        last = x;
        while(!V.empty() && V.back().second <= r * S)V.pop_back();
        V.push_back({x,r});
        while(!V2.empty() && V2.back().second <= r)V2.pop_back();

        V2.push_back({x,r});
        cout << fixed << setprecision(4) << r << '\n';
    }

    
}
#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...