Submission #114801

#TimeUsernameProblemLanguageResultExecution timeMemory
114801luciocfMobile (BOI12_mobile)C++14
0 / 100
64 ms640 KiB
#include <bits/stdc++.h>

#define ff first
#define ss second

using namespace std;

const int maxn = 5e3+10;

typedef pair<double, double> pt;

pt p[maxn];

pt get(pt a, pt b)
{
	if (b.ff == a.ff) return {0.00, 0.00};

	double p = (b.ss*b.ss - a.ss*a.ss)/(b.ff-a.ff);
	double q = a.ff + b.ff;

	return {(p+q)/2.00, 0.00};
}

double dist(pt a, pt b)
{
	double d1 = a.ff-b.ff;
	double d2 = a.ss-b.ss;

	return sqrt(d1*d1 + d2*d2);
}

int main(void)
{
	int n, L;
	scanf("%d %d", &n, &L);

	for (int i = 1; i <= n; i++)
		scanf("%lf %lf", &p[i].ff, &p[i].ss);

	double aux1 = 2e18+10, aux2 = 2e18+10;

	for (int i = 1; i <= n; i++)
	{
		aux1 = min(aux1, dist({0.00, 0.00}, p[i]));
		aux2 = min(aux2, dist({L, 0.00}, p[i]));
	}

	double ans = max(aux1, aux2);

	for (int i = 1; i <= n; i++)
	{
		for (int j = i+1; j <= n; j++)
		{
			pt limit = get(p[i], p[j]);

			ans = max(ans, dist(limit, p[i]));
		}
	}

	printf("%.9lf\n", ans);
}

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:35:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &L);
  ~~~~~^~~~~~~~~~~~~~~~~
mobile.cpp:38:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lf %lf", &p[i].ff, &p[i].ss);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...