Submission #718414

#TimeUsernameProblemLanguageResultExecution timeMemory
718414pavementWorst Reporter 3 (JOI18_worst_reporter3)C++17
100 / 100
564 ms29280 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define int long long #define mp make_pair #define mt make_tuple #define pb push_back #define ppb pop_back #define eb emplace_back #define g0(a) get<0>(a) #define g1(a) get<1>(a) #define g2(a) get<2>(a) #define g3(a) get<3>(a) #define g4(a) get<4>(a) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); using db = double; using ll = long long; using ld = long double; using ii = pair<int, int>; using iii = tuple<int, int, int>; using iiii = tuple<int, int, int, int>; using iiiii = tuple<int, int, int, int, int>; template<class key, class value = null_type, class cmp = less<key> > using ordered_set = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>; int N, Q, D[500005], A[500005]; main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N >> Q; for (int i = 1; i <= N; i++) { cin >> D[i]; } A[1] = D[1]; for (int i = 2; i <= N; i++) { A[i] = A[i - 1] * ((D[i] + A[i - 1] - 1) / A[i - 1]); } for (int i = 1, T, L, R; i <= Q; i++) { cin >> T >> L >> R; int lo = 1, hi = N, lb = -1; while (lo <= hi) { int mid = (lo + hi) / 2; // find max k s.t. k * A[mid] <= T // k = floor(T / A[mid]) int k = T / A[mid]; if (k * A[mid] - mid >= L) { lb = mid; lo = mid + 1; } else { hi = mid - 1; } } lo = 1, hi = N; int rb = -1; while (lo <= hi) { int mid = (lo + hi) / 2; // find max k s.t. k * A[mid] <= T // k = floor(T / A[mid]) int k = T / A[mid]; if (k * A[mid] - mid <= R) { rb = mid; hi = mid - 1; } else { lo = mid + 1; } } if (lb == -1 || rb == -1) cout << (L <= T && T <= R) << "\n"; else cout << lb - rb + 1 + (L <= T && T <= R) << '\n'; } }

Compilation message (stderr)

worst_reporter3.cpp:30:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   30 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...