제출 #1294753

#제출 시각아이디문제언어결과실행 시간메모리
1294753sritthebossMobile (BOI12_mobile)C++20
0 / 100
257 ms16092 KiB
#include "bits/stdc++.h"
#define INF 1e18
using namespace std;



int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    double n, l;
    cin >> n >> l;
    vector<pair<double, double>> stations(n);

    for (int i = 0; i < n; i++) {
        cin >> stations[i].first >> stations[i].second;
    }

    stack<pair<double, double>> s;

    s.push({0, -INF});

    for (int i = 1; i < n; i++) {


        double d = (pow(stations[i].first, 2) + pow(stations[i].second, 2) - pow(stations[s.top().first].first, 2)
            - pow(stations[s.top().first].second, 2)) / (2 * (stations[i].first - stations[s.top().first].second));

        while (d < s.top().first) {
            s.pop();
            d = (pow(stations[i].first, 2) + pow(stations[i].second, 2) - pow(stations[s.top().first].first, 2)
            - pow(stations[s.top().first].second, 2)) / (2 * (stations[i].first - stations[s.top().first].second));
        }

        s.push({i, d});

    }

    double r = INF;

    while (s.size() > 1) {
        pair<double, double> p = s.top();
        s.pop();
        r = min(r, pow(stations[p.first].first - p.second, 2) + pow(stations[p.first].second, 2));
    }

    cout << sqrt(r) << 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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...