Submission #1264794

#TimeUsernameProblemLanguageResultExecution timeMemory
1264794kustov_vadim_533Railway Trip 2 (JOI22_ho_t4)C++20
8 / 100
2096 ms7340 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef double ld; typedef unsigned long long ull; #define len(v) (int)((v).size()) const int LGN = 17; const int N = 1 << LGN; pair<int, int> tree[LGN][N << 1]; struct event{ int i, tp; event(int i, int tp) : i(i), tp(tp){} }; void solve() { int n, k, m; cin >> n >> k >> m; vector<event> evs; for (int i = 0; i < m; ++i){ int x, y; cin >> x >> y; --x, --y; if (x < y){ evs.emplace_back(x, y + 1); evs.emplace_back(min(x + k - 1, y), -y - 1); } else{ evs.emplace_back(max(y, x - k + 1), y + 1); evs.emplace_back(x, -y - 1); } } vector<pair<int, int>> a(n); for (int i = 0; i < n; ++i){ evs.emplace_back(i, 0); a[i] = {i, i}; } sort(evs.begin(), evs.end(), [&](event x, event y){ if (x.i != y.i) return x.i < y.i; return x.tp > y.tp; }); multiset<int> s; for (event ev : evs){ if (ev.tp == 0){ if (!s.empty()){ a[ev.i].first = min(a[ev.i].first, *s.begin()); a[ev.i].second = max(a[ev.i].second, *(--s.end())); } } else if (ev.tp > 0){ s.insert(ev.tp - 1); } else{ s.erase(s.find(-(ev.tp + 1))); } } int q; cin >> q; for (int i = 0; i < q; ++i){ int x, y; cin >> x >> y; --x, --y; int l = x, r = x; bool fl = false; for (int j = 0; j <= m; ++j){ if (l <= y && y <= r){ cout << j << '\n'; fl = true; break; } int nl = x, nr = x; for (int f = l; f <= r; ++f){ nl = min(nl, a[f].first); nr = max(nr, a[f].second); } l = nl; r = nr; } if (!fl) { cout << "-1\n"; } } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cout.precision(60); int t = 1; // cin >> t; while (t--) { solve(); } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...