Submission #1176255

#TimeUsernameProblemLanguageResultExecution timeMemory
1176255rafsanamin2020Worst Reporter 3 (JOI18_worst_reporter3)C++20
100 / 100
312 ms11236 KiB
#include <bits/stdc++.h> typedef long long int ll; using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll n, q, sum = 1; cin >> n >> q; vector<ll> d(n + 1); vector<ll> pd(n + 1); d[0] = pd[0] = 1; for (ll i = 1; i <= n; i++) { cin >> d[i]; sum = ((d[i] / sum) + (d[i] % sum == 0 ? 0 : 1)) * sum; pd[i] = sum; } for (ll i = 0; i < q; i++) { ll t, l, r; cin >> t >> l >> r; ll lo = -n, hi = 1, x, y, al, ar; while (lo < hi) { x = ((lo + hi) / 2) - (((lo + hi >= 0) || (abs((lo + hi)) % 2 == 0)) ? 0 : 1); y = x + ((t / pd[-x]) * pd[-x]); // cout << " " << lo << " " << hi << " " << x << " " << y << "\n"; if (y >= l) { hi = x; } else { lo = x + 1; } al = (lo + hi) / 2; } lo = -n, hi = 1; while (lo < hi) { x = ((lo + hi) / 2) - (((lo + hi >= 0) || (abs((lo + hi)) % 2 == 0)) ? 0 : 1); y = x + ((t / pd[-x]) * pd[-x]); // cout << " " << lo << " " << hi << " " << x << " " << y << "\n"; if (y <= r) { lo = x + 1; } else { hi = x; }; ar = (lo + hi) / 2; } // if (lx < 1 || rx < 1) // { // cout << "0\n"; // } cout << ar - al << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...