답안 #67570

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
67570 2018-08-15T03:07:33 Z thebes Mobile (BOI12_mobile) C++14
0 / 100
1000 ms 132096 KB
#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

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);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 44 ms 536 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 82 ms 804 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 76 ms 804 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 75 ms 916 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1054 ms 4436 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1068 ms 5352 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1075 ms 6480 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1087 ms 8440 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1074 ms 9988 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1075 ms 29952 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1076 ms 38208 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1084 ms 47300 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1089 ms 57300 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1085 ms 67180 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1085 ms 78756 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1083 ms 89516 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1083 ms 102708 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1077 ms 119400 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1084 ms 132096 KB Time limit exceeded
2 Halted 0 ms 0 KB -