Submission #127089

# Submission time Handle Problem Language Result Execution time Memory
127089 2019-07-08T21:39:09 Z Mahmoud_Adel Mobile (BOI12_mobile) C++14
63 / 100
998 ms 82292 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();
		ans = max(ans, max(dis(t.f, t.s.f), dis(t.f, t.s.s)));
	}
	cout << fixed << setprecision(7) << ans << endl;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 380 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 380 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 636 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 6 ms 532 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 504 KB Output is correct
2 Correct 7 ms 600 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 6 ms 504 KB Output is correct
5 Incorrect 5 ms 504 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 64 ms 2936 KB Output is correct
2 Correct 61 ms 2876 KB Output is correct
3 Correct 51 ms 2192 KB Output is correct
4 Correct 63 ms 2808 KB Output is correct
5 Incorrect 30 ms 2040 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 52 ms 2936 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 90 ms 7532 KB Output is correct
2 Correct 70 ms 3000 KB Output is correct
3 Correct 79 ms 4984 KB Output is correct
4 Correct 91 ms 3576 KB Output is correct
5 Correct 60 ms 3192 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 81 ms 3576 KB Output is correct
2 Correct 80 ms 3552 KB Output is correct
3 Correct 64 ms 3936 KB Output is correct
4 Correct 90 ms 3576 KB Output is correct
5 Correct 73 ms 3548 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 100 ms 4856 KB Output is correct
2 Correct 79 ms 3576 KB Output is correct
3 Correct 64 ms 4088 KB Output is correct
4 Correct 91 ms 3576 KB Output is correct
5 Correct 78 ms 3704 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 502 ms 40912 KB Output is correct
2 Correct 406 ms 16376 KB Output is correct
3 Correct 377 ms 16380 KB Output is correct
4 Correct 440 ms 16376 KB Output is correct
5 Correct 375 ms 22776 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 411 ms 16084 KB Output is correct
2 Correct 472 ms 17144 KB Output is correct
3 Correct 327 ms 18700 KB Output is correct
4 Correct 438 ms 16396 KB Output is correct
5 Correct 383 ms 23416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 600 ms 48892 KB Output is correct
2 Correct 478 ms 19576 KB Output is correct
3 Correct 475 ms 28024 KB Output is correct
4 Correct 539 ms 31080 KB Output is correct
5 Correct 448 ms 27256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 484 ms 19192 KB Output is correct
2 Correct 568 ms 28240 KB Output is correct
3 Correct 383 ms 27720 KB Output is correct
4 Correct 535 ms 30940 KB Output is correct
5 Correct 456 ms 28076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 717 ms 56860 KB Output is correct
2 Correct 556 ms 33228 KB Output is correct
3 Correct 544 ms 32440 KB Output is correct
4 Correct 636 ms 35832 KB Output is correct
5 Correct 510 ms 31468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 567 ms 24036 KB Output is correct
2 Correct 652 ms 32660 KB Output is correct
3 Correct 473 ms 33948 KB Output is correct
4 Correct 617 ms 35832 KB Output is correct
5 Correct 530 ms 32376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 829 ms 65220 KB Output is correct
2 Correct 640 ms 37960 KB Output is correct
3 Correct 604 ms 37112 KB Output is correct
4 Correct 712 ms 41032 KB Output is correct
5 Incorrect 601 ms 36656 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 649 ms 28760 KB Output is correct
2 Correct 749 ms 37368 KB Output is correct
3 Correct 520 ms 37952 KB Output is correct
4 Correct 753 ms 41056 KB Output is correct
5 Correct 617 ms 37112 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 998 ms 82292 KB Output is correct
2 Correct 802 ms 47224 KB Output is correct
3 Correct 737 ms 46356 KB Output is correct
4 Correct 887 ms 50988 KB Output is correct
5 Incorrect 745 ms 45304 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 809 ms 39268 KB Output is correct
2 Correct 939 ms 46212 KB Output is correct
3 Correct 682 ms 47992 KB Output is correct
4 Correct 886 ms 51064 KB Output is correct
5 Correct 772 ms 46712 KB Output is correct