Submission #96432

#TimeUsernameProblemLanguageResultExecution timeMemory
96432easruiMobile (BOI12_mobile)C++14
0 / 100
4 ms524 KiB
#include <bits/stdc++.h> using namespace std; const int MN = 1e6+5; int N,L,C[MN],num[MN],cur,pos; long long X[MN],Y[MN],A[MN],B[MN]; long double Ipos[MN],x,ans,tmp; bool cmp(int a, int b) { if(A[a]==A[b]) return B[a]<B[b]; return A[a]>A[b]; } long double getI(int a, int b) { if(A[a]==A[b]) return L; return (long double)(B[a]-B[b])/(A[b]-A[a]); } int main() { ios_base::sync_with_stdio(0),cin.tie(0); freopen("C:\\Users\\user\\Downloads\\mobile_tests\\mobile.i03d","r",stdin); cin >> N >> L; for(int i=0; i<N; i++){ cin >> X[i] >> Y[i]; A[i] = X[i]*(-2); B[i] = X[i]*X[i]+Y[i]*Y[i]; num[i] = i; } sort(num,num+N,cmp); Ipos[pos] = 0; C[pos] = num[0]; for(int i=1; i<N; i++){ cur = num[i]; while(1){ if(pos==-1){ Ipos[++pos] = 0; C[pos] = cur; break; } x = getI(C[pos],cur); if(x>=L) break; if(x>Ipos[pos]){ Ipos[++pos] = x; C[pos] = cur; break; } pos--; } } Ipos[pos+1] = L; for(int i=0; i<=pos; i++){ cur = C[i]; tmp = max((Ipos[i]-X[cur])*(Ipos[i]-X[cur]),(Ipos[i+1]-X[cur])*(Ipos[i+1]-X[cur]))+Y[cur]*Y[cur]; ans = max(ans,tmp); } cout << fixed; cout.precision(4); cout << sqrt(ans); }

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:23:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     freopen("C:\\Users\\user\\Downloads\\mobile_tests\\mobile.i03d","r",stdin);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...