Submission #127097

# Submission time Handle Problem Language Result Execution time Memory
127097 2019-07-08T21:58:22 Z Mahmoud_Adel Mobile (BOI12_mobile) C++14
63 / 100
1000 ms 81640 KB
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
typedef long long ll;
const int N = 1e6+5;
int n, m;
pair<long double, long double> p[N];
stack<pair<int, pair<long double, long double>>> s;
long double dis(int i, long double x)
{
	long double y = 0;
	return hypot((x-p[i].f), (y-p[i].s));
}
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;
	for(int i=0; i<n; i++) cin >> p[i].f >> p[i].s;
	for(int i=0; i<n; i++)
	{
		if(s.empty()) s.push({i, {0, m}});
		else
		{
			auto t = s.top();
			if(p[i].f == p[t.f].f || dis(t.f, t.s.s) < dis(i, t.s.s)) 
			continue;
			long double x;
			while(!s.empty() && dis(s.top().f, s.top().s.f) >= dis(i, s.top().s.f)) x = s.top().s.f, s.pop();
			if(s.empty())
			{ 
				s.push({i, {0, m}});
				continue;
			}
			t = s.top();
			if(dis(t.f, t.s.s) >= dis(i, t.s.s))
			{
				long double x1 = p[i].f, x2 = p[t.f].f;
				long double y1 = p[i].s, y2 = p[t.f].s;
				x = (x1*x1 - x2*x2 + y1*y1-y2*y2)/(2*x1-2*x2);
				if(x <= t.s.f) continue;
				s.pop();
				t.s.s = x;
				s.push(t);
			}
			s.push({i, {x, m}});
		}
	}
	long double ans = 0;
	while(!s.empty())
	{
		auto t = s.top();
		s.pop();
		if(t.s.f != 0)
		ans = max(ans, min(dis(t.f, t.s.f), dis(s.top().f, t.s.f)));
		else
		ans = max(ans, dis(t.f, t.s.f));
		if(t.s.s == m) ans = max(ans, dis(t.f, t.s.s));
	}
	cout << fixed << setprecision(10) << ans << endl;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 504 KB Output is correct
2 Correct 7 ms 632 KB Output is correct
3 Correct 4 ms 504 KB Output is correct
4 Correct 6 ms 760 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 632 KB Output is correct
2 Correct 6 ms 632 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 6 ms 632 KB Output is correct
5 Incorrect 5 ms 504 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 64 ms 3044 KB Output is correct
2 Correct 61 ms 3832 KB Output is correct
3 Correct 51 ms 2680 KB Output is correct
4 Correct 63 ms 3832 KB Output is correct
5 Incorrect 30 ms 2296 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 51 ms 3024 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 90 ms 7636 KB Output is correct
2 Correct 65 ms 3560 KB Output is correct
3 Correct 79 ms 5752 KB Output is correct
4 Correct 91 ms 4728 KB Output is correct
5 Correct 60 ms 4088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 82 ms 3960 KB Output is correct
2 Correct 79 ms 4728 KB Output is correct
3 Correct 64 ms 4856 KB Output is correct
4 Correct 91 ms 4728 KB Output is correct
5 Correct 74 ms 4728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 101 ms 5112 KB Output is correct
2 Correct 79 ms 4836 KB Output is correct
3 Correct 64 ms 4856 KB Output is correct
4 Correct 91 ms 4728 KB Output is correct
5 Correct 74 ms 4904 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 510 ms 41260 KB Output is correct
2 Correct 400 ms 16792 KB Output is correct
3 Correct 380 ms 18680 KB Output is correct
4 Correct 446 ms 18752 KB Output is correct
5 Correct 381 ms 18296 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 412 ms 16760 KB Output is correct
2 Correct 468 ms 19576 KB Output is correct
3 Correct 324 ms 21076 KB Output is correct
4 Correct 437 ms 18596 KB Output is correct
5 Correct 382 ms 18344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 602 ms 49272 KB Output is correct
2 Correct 480 ms 19960 KB Output is correct
3 Correct 459 ms 21496 KB Output is correct
4 Correct 537 ms 21340 KB Output is correct
5 Correct 446 ms 21496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 485 ms 19648 KB Output is correct
2 Correct 560 ms 22556 KB Output is correct
3 Correct 369 ms 23032 KB Output is correct
4 Correct 536 ms 21372 KB Output is correct
5 Correct 453 ms 21496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 705 ms 57364 KB Output is correct
2 Correct 560 ms 23356 KB Output is correct
3 Correct 519 ms 24568 KB Output is correct
4 Correct 622 ms 24568 KB Output is correct
5 Correct 513 ms 24516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 569 ms 23016 KB Output is correct
2 Correct 652 ms 25636 KB Output is correct
3 Correct 467 ms 27684 KB Output is correct
4 Correct 616 ms 24440 KB Output is correct
5 Correct 532 ms 24560 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 812 ms 65388 KB Output is correct
2 Correct 643 ms 26360 KB Output is correct
3 Correct 586 ms 27464 KB Output is correct
4 Correct 710 ms 27512 KB Output is correct
5 Incorrect 597 ms 27512 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 647 ms 26324 KB Output is correct
2 Correct 753 ms 28664 KB Output is correct
3 Correct 520 ms 30396 KB Output is correct
4 Correct 710 ms 27512 KB Output is correct
5 Correct 603 ms 27640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1012 ms 81640 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 810 ms 33056 KB Output is correct
2 Correct 929 ms 34808 KB Output is correct
3 Correct 682 ms 37368 KB Output is correct
4 Correct 886 ms 31876 KB Output is correct
5 Correct 764 ms 33396 KB Output is correct