# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
1109206 |
2024-11-06T08:03:05 Z |
Gourougourou |
Plot (POI11_wyk) |
C++17 |
|
30000 ms |
5116 KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<double,double> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
#define x first
#define y second
const double EPS = 1e-13;
double dist(pll a, pll b) {
return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)+(a.y-b.y);
}
pair<pll,ll> maxDist(vpll v) {
ll ans = 0;
pll a = v[0];
for (pll i : v) {
for (pll j : v) {
ll res = dist(i,j);
if (res > ans) {
ans = res;
a = {(i.x+j.x)/2,(i.y+j.y)/2};
}
}
}
return {a,ans};
}
vpll ok(int n, int m, vpll v, ll k) {
vpll ans;
int ind = 0;
while (ind < n) {
int cur = ind, prev = cur;
while (cur < n-1 && maxDist(vpll(v.begin()+ind,v.begin()+cur+1)).y <= 4*k) {
prev = cur;
int dif = cur-ind+1;
cur = min(cur+dif, n-1);
}
ll lo = prev, hi = cur;
while (lo < hi) {
ll mid = (lo+hi+1)/2;
auto p = maxDist(vpll(v.begin()+ind, v.begin()+mid+1));
if (p.y <= 4*k) lo = mid;
else hi = mid-1;
}
ans.push_back(maxDist(vpll(v.begin()+ind, v.begin()+lo+1)).x);
ind = lo+1;
}
return ans.size() <= m ? ans : vpll();
}
int main() {
int n, m; cin >> n >> m;
vpll v(n);
for (pll &p : v) cin >> p.x >> p.y;
double lo = 0, hi = 1e18;
while (hi-lo > EPS) {
double mid = (hi+lo)/2;
if (ok(n,m,v,mid).size()) hi = mid;
else lo = mid;
}
vpll ans = ok(n,m,v,hi);
cout << fixed << setprecision(14);
cout << sqrt(hi) << '\n';
cout << ans.size() << '\n';
for (pll p : ans) cout << p.x << ' ' << p.y << '\n';
}
Compilation message
wyk.cpp: In function 'vpll ok(int, int, vpll, ll)':
wyk.cpp:51:23: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
51 | return ans.size() <= m ? ans : vpll();
| ~~~~~~~~~~~^~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
336 KB |
Output is correct |
2 |
Incorrect |
1 ms |
504 KB |
Nieprawidlowa wartosc r |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Nieprawidlowa wartosc r |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30048 ms |
336 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30042 ms |
336 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30009 ms |
336 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30041 ms |
476 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30044 ms |
472 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30023 ms |
336 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30042 ms |
592 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30046 ms |
2908 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30009 ms |
5116 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30025 ms |
5116 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
30044 ms |
5116 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |