Submission #1170582

#TimeUsernameProblemLanguageResultExecution timeMemory
1170582lopkusTrampoline (info1cup20_trampoline)C++20
0 / 100
2094 ms2692 KiB
#include <bits/stdc++.h> int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int r, c, n; std::cin >> r >> c >> n; std::vector<std::pair<int,int>> a(n + 1); for(int i = 1; i <= n; i++) { std::cin >> a[i].first >> a[i].second; } std::sort(a.begin() + 1, a.end()); int q; std::cin >> q; while(q--) { int x1, y1, x2, y2; std::cin >> x1 >> y1 >> x2 >> y2; if(y1 > y2 || x2 < x1) { std::cout << "No\n"; continue; } int ok = 1; int currx = x1, curry = y1; while(true) { if(currx == x2) { break; } if(curry > y2) { ok = 0; break; } int l = 1, r = n, p = - 1; while(l <= r) { int mid = (l + r) / 2; if(a[mid].first >= currx) { r = mid - 1; p = mid; } else { l = mid + 1; } } if(p == - 1 || a[p].first != currx) { ok = 0; break; } l = p, r = n; int s = - 1; while(l <= r) { int mid = (l + r) / 2; if(a[mid].first > currx) { r = mid - 1; continue; } if(a[mid].second >= curry) { r = mid - 1; s = mid; } else { l = mid + 1; } } if(s == - 1) { ok = 0; break; } currx += 1; curry = a[s].second; } if(ok) { std::cout << "Yes\n"; } else { std::cout << "No\n"; } } }
#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...