Submission #670276

#TimeUsernameProblemLanguageResultExecution timeMemory
670276RadicaIMobile (BOI12_mobile)C++17
0 / 100
1097 ms131072 KiB
#include <bits/stdc++.h>
using namespace std;
using ld = long double;
int main(){
	cout.precision(10);
	int n,siz; cin >> n>>siz;
	pair<ld, ld> stations[n];
	for(int i=0; i<n; i++) cin >> stations[i].first >> stations[i].second;
	ld l = 1e-5; ld r = 3e9;
	int random=0;
	ld ans=0;
	while(l<=r && random<=2){
		ld m = (l+r)/2.0;
		ld lowest=0.0; ld highest=l+0.0;
		set<pair<ld, int> > endp;
		for(int i=0; i<n; i++){
			if(abs(stations[i].second) <=m){
				ld ph = stations[i].first + sqrt(m*m-stations[i].second*stations[i].second);
				ld pl = stations[i].first - sqrt(m*m-stations[i].second*stations[i].second);
				endp.insert(make_pair(pl,0));
				endp.insert(make_pair(ph,1));
			}
		}
		bool check=true;
		int count=0;
		for(auto thing: endp){
			if(thing.second == 0) count++;
			else count--;
			if(thing.first <siz && count==0) check=false;
		}
		if(check){
			ans=m; if(r==m) random++; r=m;
		}else{
			if(l==m) random++; l=m;
		}
	}
	cout << ans;
}

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:34:4: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   34 |    if(l==m) random++; l=m;
      |    ^~
mobile.cpp:34:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   34 |    if(l==m) random++; l=m;
      |                       ^
mobile.cpp:14:6: warning: unused variable 'lowest' [-Wunused-variable]
   14 |   ld lowest=0.0; ld highest=l+0.0;
      |      ^~~~~~
mobile.cpp:14:21: warning: unused variable 'highest' [-Wunused-variable]
   14 |   ld lowest=0.0; ld highest=l+0.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...