Submission #398271

# Submission time Handle Problem Language Result Execution time Memory
398271 2021-05-04T04:36:21 Z AriaH Mobile (BOI12_mobile) C++11
100 / 100
520 ms 35196 KB
/** vaziat sorati ghermeze **/

#pragma GCC optimize("Ofast")
#pragma GCC target("avx")
#include <bits/stdc++.h>
using namespace std;

typedef long long                   ll;
typedef double                 ld;
typedef pair<int,int>               pii;
typedef pair<ll,ll>                 pll;
#define all(x)                      (x).begin(),(x).end()
#define F                           first
#define S                           second
#define Mp                          make_pair
#define SZ(x)			    		(int)x.size()
#define fast_io                     ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define file_io                     freopen("in.txt" , "r+" , stdin) ; freopen("out.txt" , "w+" , stdout);

const int N = 1e6 + 10;
const ll mod = 1e9 + 7;
const ll mod2 = 998244353;
const ll inf = 8e18;
const ld one = 1.;
const ld eps = 1e-15;

int n, L, X[N], Y[N];

ld base[N];

pair < ld, ld > arr[N];

int check(ld x)
{
	ld right = 0;
	for(int i = 1; i <= n; i ++)
	{
		if(abs(Y[i]) - x > eps) continue;
		ld l = sqrt(x * x - base[i]);
		if(right - (X[i] - l) > eps)
		{
		    if((X[i] + l) - right > eps)
		    {
			    right = X[i] + l;
			    if(right - L > eps) return 1;
		    }
		}
	}
	return 0;
}

int main()
{
	scanf("%d%d", &n, &L);
	for(int i = 1; i <= n; i ++)
	{
		scanf("%d%d", &X[i], &Y[i]);
		base[i] = one * Y[i] * Y[i];
	}
	ld d = 0, up = 3e9;
	///printf("checking %d\n", check(6));
	for(int _ = 0; _ < 44; _ ++)
	{
		ld mid = (up + d) / 2.0;
		if(check(mid))
		{
			up = mid;
		}
		else
		{
			d = mid;
		}
	}
	printf("%.4lf", up);
    return 0;
}

/** test corner cases(n = 1?) watch for overflow or minus indices **/

Compilation message

mobile.cpp: In function 'int main()':
mobile.cpp:54:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   54 |  scanf("%d%d", &n, &L);
      |  ~~~~~^~~~~~~~~~~~~~~~
mobile.cpp:57:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   57 |   scanf("%d%d", &X[i], &Y[i]);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 3 ms 332 KB Output is correct
3 Correct 3 ms 332 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
5 Correct 3 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 32 ms 1464 KB Output is correct
2 Correct 24 ms 1400 KB Output is correct
3 Correct 15 ms 1112 KB Output is correct
4 Correct 25 ms 1500 KB Output is correct
5 Correct 12 ms 1044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 21 ms 1504 KB Output is correct
2 Correct 21 ms 1356 KB Output is correct
3 Correct 24 ms 1488 KB Output is correct
4 Correct 27 ms 1564 KB Output is correct
5 Correct 31 ms 1664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 1620 KB Output is correct
2 Correct 25 ms 1576 KB Output is correct
3 Correct 23 ms 1608 KB Output is correct
4 Correct 38 ms 1852 KB Output is correct
5 Correct 25 ms 1708 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 1908 KB Output is correct
2 Correct 33 ms 1872 KB Output is correct
3 Correct 28 ms 1808 KB Output is correct
4 Correct 37 ms 1892 KB Output is correct
5 Correct 30 ms 1808 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 45 ms 1780 KB Output is correct
2 Correct 30 ms 1868 KB Output is correct
3 Correct 34 ms 1868 KB Output is correct
4 Correct 38 ms 1868 KB Output is correct
5 Correct 36 ms 1840 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 231 ms 8140 KB Output is correct
2 Correct 181 ms 8100 KB Output is correct
3 Correct 182 ms 15368 KB Output is correct
4 Correct 188 ms 17648 KB Output is correct
5 Correct 172 ms 15100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 164 ms 8116 KB Output is correct
2 Correct 259 ms 14760 KB Output is correct
3 Correct 147 ms 14024 KB Output is correct
4 Correct 194 ms 17608 KB Output is correct
5 Correct 158 ms 15328 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 281 ms 9612 KB Output is correct
2 Correct 197 ms 18892 KB Output is correct
3 Correct 186 ms 18324 KB Output is correct
4 Correct 229 ms 21548 KB Output is correct
5 Correct 188 ms 17732 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 194 ms 9608 KB Output is correct
2 Correct 320 ms 17636 KB Output is correct
3 Correct 168 ms 16544 KB Output is correct
4 Correct 220 ms 21328 KB Output is correct
5 Correct 207 ms 18444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 312 ms 11244 KB Output is correct
2 Correct 251 ms 22056 KB Output is correct
3 Correct 217 ms 21508 KB Output is correct
4 Correct 262 ms 24772 KB Output is correct
5 Correct 266 ms 20292 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 237 ms 11204 KB Output is correct
2 Correct 353 ms 20528 KB Output is correct
3 Correct 239 ms 19608 KB Output is correct
4 Correct 265 ms 24664 KB Output is correct
5 Correct 234 ms 21552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 345 ms 12860 KB Output is correct
2 Correct 281 ms 25256 KB Output is correct
3 Correct 255 ms 24428 KB Output is correct
4 Correct 306 ms 28392 KB Output is correct
5 Correct 254 ms 24240 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 262 ms 12744 KB Output is correct
2 Correct 391 ms 23412 KB Output is correct
3 Correct 230 ms 22344 KB Output is correct
4 Correct 309 ms 28292 KB Output is correct
5 Correct 259 ms 24388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 428 ms 15936 KB Output is correct
2 Correct 311 ms 31448 KB Output is correct
3 Correct 329 ms 30404 KB Output is correct
4 Correct 390 ms 35072 KB Output is correct
5 Correct 334 ms 29532 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 351 ms 15940 KB Output is correct
2 Correct 520 ms 29164 KB Output is correct
3 Correct 297 ms 28244 KB Output is correct
4 Correct 381 ms 35196 KB Output is correct
5 Correct 327 ms 30788 KB Output is correct