제출 #906191

#제출 시각아이디문제언어결과실행 시간메모리
906191MikhailMobile (BOI12_mobile)C++14
8 / 100
764 ms16064 KiB
#include <iostream>
#include <math.h>
#define MAX_N 1000000
double x[MAX_N], y[MAX_N];
#define MAX(a,b)  ((a > b) ? a : b)

using namespace std;

int main() {
	int N;
	cin >> N;
	double L;
	cin >> L;

	cin >> x[0] >> y[0];
	y[0] = y[0] * y[0];
	int ni = 1;
	for (int i = 1; i < N; i++) {
		cin >> x[ni] >> y[ni];
		if (x[ni] == x[ni - 1]) {
			if (y[ni] * y[ni] < y[ni - 1]) {
				x[ni - 1] = x[ni];
				y[ni - 1] = y[ni] * y[ni];
			}
		}
		else {
			y[ni] = y[ni] * y[ni];
			ni++;
		}
	}


	double l = 0., m, r = 1e9, m_sqr, c, t0, tn, tp;
	while(r - l > 0.001) {
		m = l / 2 + r / 2;
		m_sqr = m * m;
		c = 0.;
		for (int j = 0; j < ni; j++) {
			if (m_sqr < y[j]) continue;
			t0 = sqrt(m_sqr - y[j]);
			tn = x[j] - t0;
			if (tn > c) continue;
			t0 += x[j];
			c = MAX(t0, c);
		}
		//cout << c << ' ' << l << ' ' << r << ' ' << min_t <<  '\n';
		if (c > L) r = m;
		else l = m;
	}
	cout << l / 2 + r / 2 << '\n';
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

mobile.cpp: In function 'int main()':
mobile.cpp:33:47: warning: unused variable 'tp' [-Wunused-variable]
   33 |  double l = 0., m, r = 1e9, m_sqr, c, t0, tn, tp;
      |                                               ^~
#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...