제출 #1337732

#제출 시각아이디문제언어결과실행 시간메모리
1337732JungPSMobile (BOI12_mobile)C++20
0 / 100
133 ms8260 KiB
#include<bits/stdc++.h>
using namespace std;

int x[1000007],y[1000007];
vector<pair<int,pair<long double,long double>>> vec;
long double mx=0;

long double dist(int id,long double a,long double b){
    return sqrt((x[id]-a)*(x[id]-a)+(y[id]-b)*(y[id]-b));
}
signed main(){
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int n,l; cin >> n >> l;
    for(int i=1;i<=n;++i){
        cin >> x[i] >> y[i];
    }
    stack<pair<int,pair<long double,long double>>> st;
    long double cx=0;
    for(int r=1;r<=n;++r){
        if(st.empty()) st.push({r,{x[r],y[r]}});
        else{
            pair<int,int> prev=st.top().second;
            pair<int,int> cur={x[r],y[r]};
            int previd=st.top().first;
            int curid=r;
            long double a=prev.first;
            long double b=prev.second;
            long double c=cur.first;
            long double d=cur.second;
            long double tx=(c*c+d*d-a*a-b*b)/(2*(c-a));
            if(tx<cx || tx>c) continue;
            
            mx=max(mx,dist(previd,tx,0));
            mx=max(mx,dist(curid,tx,0));

            cx=tx;
            st.pop();
            st.push({r,cur});
        }
    }
    cout << mx;
}
#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...