Submission #685732

#TimeUsernameProblemLanguageResultExecution timeMemory
685732divadTrampoline (info1cup20_trampoline)C++14
19 / 100
2045 ms17292 KiB
#include <iostream> #include <fstream> #include <algorithm> #include <vector> #include <set> #include <map> #define pii pair<int, int> #define all(x) (x).begin(), (x).end() using namespace std; int r,c,n,T,x1,x2,y1,y2; vector<pii> secv; map<int, set<int>> mp; ifstream fin("input.txt"); bool trecut(pii s, int x){ return (s.first >= x || x <= s.second); } bool inclus(pii s, int x){ return (s.first <= x && x <= s.second); } int next_pos(int row, int col){ if(col > *(--mp[row].end())){ return -1; } auto it = upper_bound(all(mp[row]), col); return *it; } void solve(){ cin >> x1 >> y1 >> x2 >> y2; /*cout << x1 << ", " << y1 << " -> " << x2 << ", " << y2 << "\n"; for(auto it: secv){ cout << trecut(it, x1) << "\n"; }*/ if(x1 > x2 || y1 > y2){ //cout << (x1 > x2) << " , " << (y1 > y2) << "\n"; cout << "No\n"; return ; } if(x1 == x2){ cout << "Yes\n"; return ; } int st = 0, dr = secv.size()-1; int ans = -1; while(st <= dr){ int mid = ((st+dr)>>1); if(trecut(secv[mid], x1)){ ans = mid; dr = mid-1; }else{ st = mid+1; } } if(ans == -1){ cout << "No\n"; return ; } if(!inclus(secv[ans], x2)){ cout << "No\n"; return ; } bool ok = true; while(x1 < x2){ y1 = next_pos(x1, y1); if(y1 == -1){ ok = false; break; } x1++; } if(ok){ ok = (y1 <= y2); } cout << (ok ? "Yes" : "No") << "\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> r >> c >> n; for(int i = 1; i <= n; i++){ cin >> x1 >> y1; mp[x1].insert(y1); } int ind = -1; for(auto [row, v]: mp){ /*cout << row << " = "; for(auto it: v){ cout << it << " "; } cout << "\n";*/ if(secv.size() == 0){ secv.push_back({row, row+1}); ind++; }else{ if(row == secv[ind].second){ secv[ind].second = row+1; }else{ secv.push_back({row, row+1}); ind++; } } } /*for(auto [st, dr]: secv){ cout << st << ", " << dr << "\n"; }*/ cin >> T; while(T--){ solve(); } return 0; }

Compilation message (stderr)

trampoline.cpp: In function 'int main()':
trampoline.cpp:88:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   88 |     for(auto [row, v]: mp){
      |              ^
#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...