#include<bits/stdc++.h> usingnamespace std; #define int long long
voidsolve(){ int r; cin >> r; int ans = 0; int cmp = r * r; int y = 1; for (int i = r - 1; i > 0; i--) { while ((y + 0.5) * (y + 0.5) + (i + 0.5) * (i + 0.5) <= cmp) { y++; } ans += y - 1; } ans += sqrt(cmp - 0.25) - 0.5; cout << ans * 4 + 1 << "\n"; }
signedmain(){ ios::sync_with_stdio(false); cin.tie(0); int t = 1; // cin >> t; while (t--) { solve(); } return0; }
#include<bits/stdc++.h> usingnamespace std; #define int long long typedef __int128 ll;
voidsolve(){ int N, M; cin >> N >> M; vector<int> P(N); for (int i = 0; i < N; i++) { cin >> P[i]; } int lo = 0, hi = 1e18 + 1; int res = 0; while (lo < hi) { int mid = lo + (hi - lo) / 2; ll cnt0 = 0, cnt1 = 0, sum = M; for (int i = 0; i < N; i++) { auto get = [&](int p, int mid) { int lo = 1, hi = 1e18 + 1; int res = 0; while (lo < hi) { int k = lo + (hi - lo) / 2; if ((__int128)(2 * k - 1) * p < mid) { res = k; lo = k + 1; } else { hi = k; } } return res; }; ll k = get(P[i], mid); cnt0 += k; sum -= k * k * P[i]; if ((2 * k + 1) * P[i] == mid) { cnt1++; } if (sum < 0) { break; } } if (sum >= 0) { res = max(res, (int)(cnt0 + min(cnt1, sum / mid))); lo = mid + 1; } else { hi = mid; } } cout << res << endl; }
signedmain(){ ios::sync_with_stdio(false); cin.tie(0); int t = 1; // cin >> t; while (t--) { solve(); } return0; }
#include<bits/stdc++.h> usingnamespace std; #define int long long
template <typename T> structFenwick { int n; vector<T> a; Fenwick(int n_ = 0) { init(n_); } voidinit(int n_){ n = n_; a.assign(n, T{}); } voidadd(int x, const T &v){ for (int i = x + 1; i <= n; i += i & -i) { a[i - 1] = a[i - 1] + v; } } T sum(int x){ int ans = 0; for (int i = x; i > 0; i -= i & -i) { ans = ans + a[i - 1]; } return ans; } T rangeSum(int l, int r){ returnsum(r) - sum(l); } };
voidsolve(){ int N; cin >> N; vector<int> L(N), R(N); for (int i = 0; i < N; i++) { cin >> L[i] >> R[i]; } Fenwick<int> bit(5e5 + 5); for (int i = 0; i < N; i++) { int lo = 1, hi = L[i] + 1; int lans = 1, rans = 1; while (lo < hi) { int mid = lo + (hi - lo) / 2; if (mid + bit.sum(mid) >= L[i]) { lans = mid; hi = mid; } else { lo = mid + 1; } } lo = 1, hi = R[i] + 1; while (lo < hi) { int mid = lo + (hi - lo) / 2; if (mid + bit.sum(mid) <= R[i]) { lo = mid + 1; rans = mid; } else { hi = mid; } } bit.add(lans - 1, 1); bit.add(rans, -1); } int Q; cin >> Q; while (Q--) { int x; cin >> x; cout << x + bit.sum(x) << "\n"; } }
signedmain(){ ios::sync_with_stdio(false); cin.tie(0); int t = 1; // cin >> t; while (t--) { solve(); } return0; }