# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
671151 | vjudge1 | Mobile (BOI12_mobile) | C++17 | 1102 ms | 47480 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define lb lower_bound
#define ub upper_bound
using vi = vector<int>;
using ll = long long;
using pii = pair<ll, int>;
const int maxn = 2e6 + 7;
double x[maxn], y[maxn];
pair<double, int> pt[maxn];
double L;
int n;
bool check(double r) {
int m = 0;
rep(i, 0, n) {
if (abs(y[i]) < r) {
double dy = abs(y[i]);
double tmp = r * r - dy * dy;
double dx = sqrt(tmp);
double x1 = x[i] - dx, x2 = x[i] + dx;
pt[m].f = max(0.0, x1); pt[m].s = -1; m++;
pt[m].f = min(L, x2); pt[m].s = 1; m++;
}
}
sort(pt, pt + m);
stack<double> st;
double len = 0.0;
rep(i, 0, m) {
if (pt[i].s == -1) {
st.push(pt[i].f);
} else {
double dis = pt[i].f - st.top();
st.pop();
if (st.empty()) {
len += dis;
}
}
}
return len >= L;
}
int main() {
//ios::sync_with_stdio(false);
scanf("%d %lf", &n, &L);
rep(i, 0, n) {
scanf("%lf %lf", &x[i], &y[i]);
}
double l = 0.0, r = 1e4;
rep(it, 0, 70) {
double mid = l + (r - l) / 2;
if (check(mid)) {
r = mid;
} else {
l = mid;
}
}
printf("%.6lf\n", l);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |