제출 #1139021

#제출 시각아이디문제언어결과실행 시간메모리
1139021monostackMobile (BOI12_mobile)C++20
0 / 100
769 ms31632 KiB
#include<bits/stdc++.h>
#include <cstdio>
using namespace std;
#define int long long
#define ld long double
#define ff first
#define ss second
#define INF -1e18
#define mp make_pair

int n,k; 

ld d(pair<ld,ld> a, pair<ld,ld> b){
    return sqrt((a.ff - b.ff)*(a.ff - b.ff) + (a.ss - b.ss)*(a.ss - b.ss));
}

ld f(pair<ld,ld> a, pair<ld,ld> b){
    ld res = ((b.ss)*(b.ss) - (a.ss)*(a.ss))/(2*(b.ff - a.ff)) + (a.ff + b.ff)/2;
    if(res < 0) return 0;
    if(res > k) return k;
    return res;
}


int32_t main(){
    #ifdef LOCAL_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    cin>>n>>k;
    ld ans = INF;
    vector<pair<ld,ld>> v(n);
    for(int i = 0; i < n; i++){
        ld x,y; cin>>x>>y;
        v[i] = {x,y};
    }
    v.erase(unique(v.begin(), v.end(), [&](pair<int,int> a, pair<int,int> b){return a.ff == b.ff;}),v.end());

    for(int i = 0; i < n; i++){
        if(i != n-1){
            ld chf = f(v[i],v[i+1]); 
            ans = max(ans, d(mp(chf,0), v[i]));
        }
        if(i != 0){
            ld chb = f(v[i-1],v[i]);
            ans = max(ans, d(mp(chb,0),v[i]));
        }
    }
    cout<<ans<<'\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...