Submission #1020077

#TimeUsernameProblemLanguageResultExecution timeMemory
1020077thinknoexitWish (LMIO19_noras)C++17
100 / 100
150 ms11712 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll R; ll x, y, sx, sy; ll d(ll x, ll y) { return x * x + y * y; } ll val(ll k) { return d(sx + x * k, sy + y * k); } int main() { cin.tie(nullptr)->sync_with_stdio(false); int n; cin >> n >> R; R = R * R; vector<pair<ll, int>> v; for (int i = 1;i <= n;i++) { { int a, b, c, d; cin >> a >> b >> c >> d; x = c - a, y = d - b; sx = a - x, sy = b - y; } ll m; ll MX = 1e8 / max(abs(x), abs(y)) + 1; { ll l = 1, r = MX; while (l < r) { ll mid = (l + r + 1) / 2; if (val(mid) >= val(mid + 1)) l = mid; else r = mid - 1; } m = l; } { ll l = 1, r = m + 1; while (l < r) { ll mid = (l + r) / 2; if (val(mid) <= R) r = mid; else l = mid + 1; } v.push_back({ l, 1 }); //cout << l << ' '; } //cout << m << ' '; { ll l = m, r = MX; while (l < r) { ll mid = (l + r + 1) / 2; if (val(mid) <= R) l = mid; else r = mid - 1; } v.push_back({ l + 1, -1 }); //cout << l << '\n'; } } sort(v.begin(), v.end()); int mx = 0; int now = 0; for (int i = 0, j;i < (int)v.size();i = j) { for (j = i;j < (int)v.size() && v[i].first == v[j].first;j++) now += v[j].second; mx = max(mx, now); } cout << mx; return 0; }
#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...