Submission #67570

#TimeUsernameProblemLanguageResultExecution timeMemory
67570thebesMobile (BOI12_mobile)C++14
0 / 100
1089 ms132096 KiB
#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,ssse3,sse3,sse4,popcnt,avx,mmx,abm,tune=native") #include <bits/stdc++.h> using namespace std; const int MN = 1e6+6, MM = 1e9+7; double lo, hi = MM, eps = 1e-4; pair<double,int> arr[2*MN]; int N, M, i, j; pair<int,int> pnt[MN]; typedef pair<double,int> P; bool cmp(P i,P j){return i.first==j.first?i.second>j.second:i.first<j.first;} inline bool check(double d){ for(int i=1;i<=N;i++){ if(abs(pnt[i].second)>=d){ arr[2*i-1]=arr[2*i]={-1,-1}; continue; } double dx=sqrt(d*d-pnt[i].second*pnt[i].second); arr[2*i-1]={pnt[i].first-dx,1}; arr[2*i]={pnt[i].first+dx,-1}; } sort(arr+1,arr+2*N+1,cmp); int cnt=0; for(int i=1;i<=2*N;i++){ cnt += arr[i].second; if(cnt<1&&(i==2*N||arr[i+1].second!=arr[i].second)&&arr[i].first<M&&arr[i].first>0) return 0; } return 1; } int main(){ for(scanf("%d%d",&N,&M),i=1;i<=N;i++) scanf("%d%d",&pnt[i].first,&pnt[i].second); while(lo+eps<hi){ double m = (lo+hi)/2; if(check(m)) hi=m; else lo=m+eps; } printf("%.4lf\n",lo); return 0; }

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:34:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(scanf("%d%d",&N,&M),i=1;i<=N;i++)
      ~~~~~~~~~~~~~~~~~~~^~~~
mobile.cpp:35:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d",&pnt[i].first,&pnt[i].second);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...