Submission #1279648

#TimeUsernameProblemLanguageResultExecution timeMemory
1279648avighnaHarvest (JOI20_harvest)C++20
0 / 100
52 ms1396 KiB
#include <bits/stdc++.h> int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int64_t n, m, L, c; std::cin >> n >> m >> L >> c; std::vector<int64_t> emp(n), app(m); for (auto &i : emp) { std::cin >> i; } for (auto &i : app) { std::cin >> i; } // how many values between range [l,r] auto _cnt = [&](int64_t l, int64_t r) { auto it2 = std::upper_bound(app.begin(), app.end(), r); auto it1 = std::lower_bound(app.begin(), app.end(), l); return it2 - it1; }; auto cnt = [&](int64_t l, int64_t r) { if (l <= r) { return _cnt(l, r); } return _cnt(l, L - 1) + _cnt(0, r); }; int q; std::cin >> q; while (q--) { int64_t v, t; std::cin >> v >> t; --v; int64_t st = emp[v]; int64_t en = emp[v] + t; if (n != 1) { if (emp[v] < emp[(v + 1) % n]) { en = std::min(en, emp[(v + 1) % n]); } else { en = std::min(en, L + emp[(v + 1) % n]); } } en %= L; std::cout << cnt(st, en) << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...