Submission #1109888

#TimeUsernameProblemLanguageResultExecution timeMemory
1109888Zero_OPTrampoline (info1cup20_trampoline)C++14
23 / 100
107 ms21732 KiB
#include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int R, C, N; cin >> R >> C >> N; struct point{ int x, y; }; vector<point> points(N); for(int i = 0; i < N; ++i){ cin >> points[i].x >> points[i].y; } int T; cin >> T; struct route{ point s, t; }; vector<route> routes(T); for(int i = 0; i < T; ++i){ cin >> routes[i].s.x >> routes[i].s.y >> routes[i].t.x >> routes[i].t.y; } vector<bool> answer(T, true); for(int i = 0; i < T; ++i){ if(routes[i].s.x > routes[i].t.x || routes[i].s.y > routes[i].t.y){ //degenerate case answer[i] = false; } } vector<vector<int>> level(251); for(int i = 0; i < N; ++i){ level[points[i].x].push_back(points[i].y); } for(int i = 1; i <= 250; ++i){ sort(level[i].begin(), level[i].end()); level[i].erase(unique(level[i].begin(), level[i].end()), level[i].end()); level[i].push_back(251); } for(int i = 0; i < T; ++i) if(answer[i]){ int x = routes[i].s.x, y = routes[i].s.y; while(x < routes[i].t.x){ auto it = lower_bound(level[x].begin(), level[x].end(), y); if(it == level[x].end()){ answer[i] = false; break; } ++x; y = *it; } if(answer[i] && y > routes[i].t.y){ answer[i] = false; } } for(int i = 0; i < T; ++i){ cout << (answer[i] ? "Yes\n" : "No\n"); } return 0; }
#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...