답안 #1096887

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1096887 2024-10-05T11:13:51 Z ocasu Mobile (BOI12_mobile) C++17
0 / 100
486 ms 56660 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];
    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 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 600 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 600 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 4 ms 600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 3412 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 26 ms 3560 KB Expected double, but "inf" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 31 ms 5304 KB Output is correct
2 Incorrect 35 ms 4000 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 45 ms 5080 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 46 ms 4944 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 149 ms 28380 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 243 ms 24148 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 196 ms 34128 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 292 ms 29012 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 217 ms 39660 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 328 ms 33780 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 236 ms 45312 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 377 ms 38480 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 310 ms 56660 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 486 ms 48192 KB Output isn't correct
2 Halted 0 ms 0 KB -