답안 #638869

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
638869 2022-09-07T18:29:32 Z Pietra Mobile (BOI12_mobile) C++14
0 / 100
1000 ms 3580 KB
// pto max de dist max na estrada ate a base mais prox do transceptor
// estrada eh horizontal e vai de 0 a L 
// e tem n 
#include<bits/stdc++.h>
#define int long long 
using namespace std ; 

// bb na pos do pto 
// qual o 1o pto q se eu pegar do meu fica dist maior doq se eu pegar do meu anterior? esses são os ptos q podem ter maior dist ?

const int maxn = 1e5 + 5 ; 
const int inf = 1e18 ; 

double x[maxn], y[maxn] ; 
int n, l ; 

double dist(pair<double,double> a, pair<double,double> b){
	double dx = a.first - b.first, dy = a.second - b.second ;
	return (dx*dx) + (dy*dy) ; 
}

int32_t main(){

	// scanf("%d%d", &n, &l) ; 

	// for(int i = 1 ; i <= n ; i++){
	// 	scanf("%lf%lf", &x[i], &y[i]) ; 
	// }
	// double id ; 
	// double mx = 0.00 ; 
	// for(double i = 0.00000 ; i <= l*1.000000 ; i += 0.00001){
	// 	double mn = inf*1.00 ; 
	// 	for(int j = 1 ; j <= n ; j++){	
	// 		mn = min(mn, dist({x[j], y[j]}, {i, 0})) ; 
	// 	}
	// 	if(mn > mx) id = i ; 
	// 	mx = max(mx , mn) ; 
	// }

	// printf("%.3lf", id) ; 

	scanf("%d%d", &n, &l) ; 

	for(int i = 1 ; i <= n ; i++){
		scanf("%lf%lf", &x[i], &y[i]) ; 
	}

	vector<double> ptos ; 
	pair<double,double> ant = {x[1]-0.00001, y[1]-0.00001} ; 

	for(int i = 1 ; i <= n ; i++){
		double ini = 0.000, fim = l*1.000, mid ; double best = -1.000 ; 
		while(fim - ini >= 0.00001){ // qual 1o pto q p atual a dist dele passa no prox a ser maior p ant 
			mid = (ini + fim)/2 ; 
			//printf("%.4lf\n", mid) ;  
			if(dist(ant, {mid, 0.000}) <= dist({x[i], y[i]}, {mid, 0.000})) best = mid, ini = mid + 0.001; 
			else fim = mid - 0.001 ; 
		}
		ant = {x[i], y[i]} ; 
		ptos.push_back(best) ;  
	}

	double mx = 0 ; 

	for(double a : ptos){
		if(a == -1) continue ; 
		double mn = inf*1.00 ; 
		for(int i = 1 ; i <= n ; i++){
			mn = min(mn, dist({a, 0.00}, {x[i], y[i]})) ; 
		}
		mx = max(mx, mn) ; 
	}

	printf("%.3lf\n", sqrt(mx)) ; 

}

Compilation message

mobile.cpp: In function 'int32_t main()':
mobile.cpp:42:10: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
   42 |  scanf("%d%d", &n, &l) ;
      |         ~^     ~~
      |          |     |
      |          int*  long long int*
      |         %lld
mobile.cpp:42:12: warning: format '%d' expects argument of type 'int*', but argument 3 has type 'long long int*' [-Wformat=]
   42 |  scanf("%d%d", &n, &l) ;
      |           ~^       ~~
      |            |       |
      |            int*    long long int*
      |           %lld
mobile.cpp:42:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |  scanf("%d%d", &n, &l) ;
      |  ~~~~~^~~~~~~~~~~~~~~~
mobile.cpp:45:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |   scanf("%lf%lf", &x[i], &y[i]) ;
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 408 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 14 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1091 ms 2552 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1095 ms 2636 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1087 ms 2864 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1089 ms 2984 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1097 ms 2996 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 27 ms 3540 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 3512 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 26 ms 3468 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 33 ms 3476 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 3536 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 35 ms 3520 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 28 ms 3508 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 3512 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 29 ms 3452 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 36 ms 3580 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -