제출 #1221403

#제출 시각아이디문제언어결과실행 시간메모리
1221403juaquin_remonMobile (BOI12_mobile)C++20
0 / 100
108 ms15944 KiB
#include<bits/stdc++.h>

using namespace std;
 
typedef long long ll;
typedef vector<ll> vl;
typedef pair<ll,ll> pl;

#define forr(i,a,b) for(int i=int(a);i<int(b);++i)
#define forn(i,n) forr(i,0,n)
#define dforr(i,a,b) for(int i=int(b)-1;i>=int(a);--i)
#define dforn(i,n) dforr(i,0,n)
#define fore(e,c) for(const auto &e : (c))
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define fi first
#define se second

const ll MAXN = -1;
const ll mod = 1e9+7;
const ll inf = 1e18+10;

typedef long double ld;
void solve(){
  ll n, sz; cin >> n >> sz;
  vector<pl> c(n);
  forn(i, n) cin >> c[i].fi >> c[i].se;
  ld ans = 0;
  forn(i, n) {
    ld l, r;
    ld x = c[i].fi;
    ld y = c[i].se;
    if (i == 0) l = 0;
    else {
      ld x1 = c[i-1].fi;
      ld y1 = c[i-1].se;
      if (x1 == x) continue;
      l = (x*x + y*y - x1*x1 - y1*y1) / (-2*x1 + 2*x);

    }

    if (i == n-1) r = sz;
    else {
      ld x1 = c[i+1].fi;
      ld y1 = c[i+1].se;
      if (x1 == x) continue;
      r = (x*x + y*y - x1*x1 - y1*y1) / (-2*x1 + 2*x);
    }
    if (l > r) continue;
    ans = max(ans, (l - x)*(l-x) + y*y);
    ans = max(ans, (r - x)*(r-x) + y*y);
  }

  ans = sqrtl(ans);
  cout << fixed << setprecision(6) << ans;
}

int main(){
  ios::sync_with_stdio(0); cin.tie(0);
  int tt = 1;
  while(tt--) solve();
  return 0;
}

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