제출 #1276613

#제출 시각아이디문제언어결과실행 시간메모리
1276613sunboiMobile (BOI12_mobile)C++20
0 / 100
1098 ms48136 KiB
#include <bits/stdc++.h>
using namespace std;

const double eps = 0;

int main()
{
    int n, l; cin >> n >> l;
    vector<pair<double, double>> a(n);
    for (int i = 0; i < n; i++){
        cin >> a[i].first >> a[i].second;
    }
    double ini = 0, fin = 4 * 1e9; //cambiar a 4 * 1e9 despues
    for (int aux = 0; aux < 200; aux++){
        
        double m = (ini + fin) / 2;
        vector<pair<double, double>> inter;
        //(x - x_0)^2 + (y - y_0)^2 = m^2
        //evaluar para y = 0;
        //x - x_0 = +-sqrt(m^2 - y_0^2)
        for (int i = 0; i < n; i++){
            double l = sqrt(m * m - a[i].second * a[i].second) + a[i].first;
            double r = -sqrt(m * m - a[i].second * a[i].second) + a[i].first;
            if (l > r) swap(l, r);
            inter.push_back({l, r});
        }
        
        sort(inter.begin(), inter.end());
        /*for (int i = 0; i < n; i++){
            cout << inter[i].first << ' ' << inter[i].second;
        }
        cout << endl;*/
        double ll = 0, rr = 0;
        bool covered = 1;
        for (int i = 0; i < n; i++){
            if (inter[i].second < -eps) continue;
            
            if (rr - inter[i].first >= eps && inter[i].second - rr >= eps) rr = inter[i].second;
        }
        //cout << m << ' ' << ll << ' ' << rr << endl;
        if (rr - l > eps){
            fin = m;
        }else ini = m;
    }
    cout << fixed << setprecision(6) << ini << 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...