#include <bits/stdc++.h>
using namespace std;
#define int int64_t
#define pii array<int,2>
#define double long double
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n,t;cin>>n>>t;
vector<pii> v(n);
for (auto &x:v)cin>>x[0]>>x[1];
double l = 1;
double r = 1e15;
vector<bool> rem(n, false);
while (abs(l-r) > 0.00001) {
double m = (l+r)/2.0;
int i=0;
vector<array<double,2>> start;
for (auto &x:v) {
if ((double)abs(x[1]) >= m) {
rem[i]=true;
}
else {
double aa=(double)abs(x[1]);
double dis=sqrt(m*m-aa*aa);
array<double,2> pos1 = {x[0]-dis,x[0]+dis};
if ((pos1[0] < 0.0 && pos1[1] < 0.0) || (pos1[0] > (double)t && pos1[1] > (double)t)) {
rem[i]=true;
}
else {
pos1[0]=max(pos1[0], (double)0.0);
pos1[1]=min(pos1[1], (double)t);
start.push_back(pos1);
}
}
i++;
}
start.push_back({0.0, 0.0});
start.push_back({(double)t,(double)t});
sort(start.begin(),start.end());
// cout<<m<<" "<<l<<" "<<r<<"\n";
// for (auto &x:start) {
// cout<<x[0]<<" "<<x[1]<<"\n";
// }
// cout<<"\n";
// for (auto &x:v) {
// cout<<x[0]<<" "<<x[1]<<"\n";
// }
// cout<<"\n\n";
array<double,2> pos={0.0, 0.0};
bool possible=true;
for (auto &x:start) {
if (x[0] <= pos[1]) {
pos[1]=max(pos[1], x[1]);
}
else {
possible=false;
break;
}
}
if (possible) {
r=m;
// int cnt=0;
// int pt=0;
// for (int i=0;i<n;i++) {
// if (rem[i]) {
// cnt++;
// }
// else if (cnt != 0) {
// swap(v[i], v[pt]);
// }
// if (!rem[i]) {
// pt++;
// }
// }
// n -= cnt;
// while (v.size() != n){
// v.pop_back();
// rem.pop_back();
// }
// for (int i=0;i<n;i++) {
// rem[i]=false;
// }
}
else {
l=m;
for (i=0;i<n;i++) {
rem[i]=false;
}
}
}
cout<<setprecision(15);
cout<<r<<"\n";
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
17 ms |
716 KB |
Output is correct |
2 |
Correct |
25 ms |
716 KB |
Output is correct |
3 |
Correct |
15 ms |
604 KB |
Output is correct |
4 |
Correct |
11 ms |
696 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
33 ms |
948 KB |
Output is correct |
2 |
Correct |
39 ms |
960 KB |
Output is correct |
3 |
Correct |
43 ms |
984 KB |
Output is correct |
4 |
Correct |
27 ms |
1012 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
31 ms |
1024 KB |
Output is correct |
2 |
Correct |
39 ms |
952 KB |
Output is correct |
3 |
Correct |
48 ms |
1208 KB |
Output is correct |
4 |
Correct |
26 ms |
1012 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
32 ms |
952 KB |
Output is correct |
2 |
Correct |
41 ms |
948 KB |
Output is correct |
3 |
Correct |
43 ms |
980 KB |
Output is correct |
4 |
Correct |
25 ms |
1316 KB |
Output is correct |
5 |
Correct |
35 ms |
1000 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
584 ms |
9684 KB |
Output is correct |
2 |
Correct |
875 ms |
10004 KB |
Output is correct |
3 |
Correct |
529 ms |
5664 KB |
Output is correct |
4 |
Correct |
481 ms |
10060 KB |
Output is correct |
5 |
Correct |
418 ms |
5276 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
655 ms |
9568 KB |
Output is correct |
2 |
Correct |
548 ms |
9688 KB |
Output is correct |
3 |
Correct |
559 ms |
8400 KB |
Output is correct |
4 |
Correct |
504 ms |
9704 KB |
Output is correct |
5 |
Correct |
502 ms |
10372 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1028 ms |
8916 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1058 ms |
9256 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
673 ms |
9628 KB |
Output is correct |
2 |
Execution timed out |
1036 ms |
11668 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1039 ms |
40556 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1058 ms |
40736 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1027 ms |
60760 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1020 ms |
60136 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1049 ms |
60988 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1032 ms |
61812 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1101 ms |
63320 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1047 ms |
63792 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1091 ms |
66748 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1032 ms |
66712 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |