Submission #1188083

#TimeUsernameProblemLanguageResultExecution timeMemory
1188083voseraMobile (BOI12_mobile)C++20
4 / 100
149 ms8628 KiB
#include<bits/stdc++.h> using namespace std; int N, L; double r = 0, l = 1e9*sqrt(5); vector<pair<int, int>> coor; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> N >> L; for(int i = 0; i < N; i++){ int X, Y; cin >> X >> Y; coor.push_back({X, Y}); l = min(l, (double)abs(Y)); r = max(r, sqrt((double)Y*Y + (double)max(X, L-X)*max(X, L-X))); } while(r-l > 1e-3){ double mid = (r+l)/2; int U = -1, A = 0; double P = 0; //cout << l << " " << r << "\n"; while(P < L){ //cout << U << " " << P << " " << A << "\n"; U = -1; for(int i = A; i < N; i++){ if(coor[i].first < P-mid) continue; if(coor[i].first > P+mid) break; if((double)(coor[i].first-P)*(coor[i].first-P) + (double)coor[i].second*coor[i].second < mid*mid) U = i; //cout << "iterando: " << i << " " << ((double)(coor[i].first-P)*(coor[i].first-P) + (double)coor[i].second*coor[i].second) << " " << mid*mid << "\n"; } if(U==-1){ break; } P = abs(coor[U].first + sqrt(mid*mid - (double)coor[U].second*coor[U].second)) + 1e-3; A = U+1; } if(U == -1){ l = mid; } else{ r = mid; } } cout << (r+l)/2; 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...