답안 #1096888

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1096888 2024-10-05T11:16:37 Z ocasu Mobile (BOI12_mobile) C++17
0 / 100
460 ms 54880 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

double mid(int x1, int y1, int x2, int y2){
    return (double)(x2*x2 - x1*x1 + y2*y2 - y1*y1)/(double)(2*x2-2*x1);
}

double dist(double x1, double y1, double x2, double y2){
    return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}

signed main(){
    int n,l; cin>>n>>l;
    vector<int> x(n), y(n);
    for (int i=0; i<n; i++) cin>>x[i]>>y[i];

    for (int i=0; i<n; i++) y[i]=abs(y[i]);
    vector<int> a(n,0), b(n,l);
    
    stack<int> sl;
    //cout<<'\n';
    double ans=0;
    for (int i=0; i<n; i++){
        double cur = a[i];
        while (!sl.empty()) {
            cur = max(cur, mid(x[i],y[i],x[sl.top()],y[sl.top()]));
            if (y[i] >= y[sl.top()]) break;
            sl.pop();
        }
        //cout<<i<<' '<<cur<<'\n';
        ans=max(ans, dist(x[i],y[i],cur,0));
        sl.push(i);
    }
    stack<int> sr;
    //cout<<'\n';
    for (int i=n-1; i>=0; i--){
        double cur = b[i];
        while (!sr.empty()) {
            cur = min(cur, mid(x[i],y[i],x[sr.top()],y[sr.top()]));
            if (y[i] >= y[sr.top()]) break;
            sr.pop();
        }
        //cout<<i<<' '<<cur<<'\n';
        ans=max(ans, dist(x[i],y[i],cur,0));
        sr.push(i);
    }
    cout<<sqrt(ans)<<'\n';
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 604 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 856 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 604 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 25 ms 3516 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 3432 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 5204 KB Output is correct
2 Incorrect 39 ms 3924 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 50 ms 4948 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 50 ms 5220 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 172 ms 28500 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 226 ms 23632 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 179 ms 34128 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 284 ms 27988 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 210 ms 39252 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 328 ms 31080 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 235 ms 44116 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 365 ms 35664 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 294 ms 54880 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 460 ms 44420 KB Output isn't correct
2 Halted 0 ms 0 KB -