Submission #1296457

#TimeUsernameProblemLanguageResultExecution timeMemory
1296457KindaGoodGamesMobile (BOI12_mobile)C++20
0 / 100
1097 ms31604 KiB
#include<bits/stdc++.h>

#define ll long long
#define int ll
#define double long double
#define pii pair<double,double>
#define tiii tuple<int,int,int>

using namespace std;

double INF = numeric_limits<int>::max()/2;

double dist(pii a, pii b){
    double x = a.first-b.first;
    double y = a.second-b.second;

    return sqrtl((x*x)+(y*y));
}

    int n;
    double L;

double intersect(pii a, pii b){
    double ydiff = a.second-b.second;
    double x1 = a.first; double x2 = b.first;

    double res1 = (x1+x2)/2.0L;
    double res2 = ydiff;
    res2 /= 2.0L*(x1-x2);

    double p = res1+res2;
    p = min(p,L);
    p = max(p,0.0L);
    return p;
}
// double intersect(pii a, pii b){
//     double ysum = a.second+b.second;
//     double x1 = a.first; double x2 = b.first;

//     double res1 = (x1*x1)-(x2*x2);
//     double res2 = ysum;
//     res2 /= 2.0L*(x1-x2);

//     double p = res1+res2;
//     p = min(p,L);
//     p = max(p,0.0L);
//     return p;
// }
int32_t main(){
    cin >> n >> L;

    vector<pii> arr(n);
    for(int i = 0 ;i < n; i++){
        cin >> arr[i].first >> arr[i].second;
    }
    double r = 0;
    for(int i = 0 ;i < n; i++){
        for(int j = i+1; j < n; j++){
            if(arr[i].first == arr[j].first) continue;
            double p = intersect(arr[i],arr[j]);

            double mi = INF;
            for(int k = 0; k < n; k++){
                mi = min(mi, dist(arr[k], {p,0.0L}));
            }
            r = max(r,mi);
        }
    }
    cout << 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...
#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...