제출 #1256086

#제출 시각아이디문제언어결과실행 시간메모리
1256086mngoc._.Curtains (NOI23_curtains)C++20
100 / 100
1202 ms86056 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int , int> const int N = 5e5 + 5; const int anhnhoem = 1e18; vector<pii> queries[N]; vector<int> a[N]; int n , m , q; int st[4 * N] , lazy[4 * N]; string res[N]; void down(int idx){ int k = lazy[idx]; if(k == 0) return; st[2 * idx] = max(st[2 * idx] , k); st[2 * idx + 1] = max(st[2 * idx + 1] , k); lazy[2 * idx] = max(lazy[2 * idx] , k); lazy[2 * idx + 1] = max(lazy[2 * idx + 1] , k); lazy[idx] = 0; } void update(int idx , int l , int r , int u , int v , int val){ if(l > v || r < u) return; if(u <= l && r <= v){ st[idx] = max(st[idx] , val); lazy[idx] = max(lazy[idx] , val); return; } down(idx); int mid = (l + r) / 2; update(2 * idx , l , mid , u , v , val); update(2 * idx + 1 , mid + 1 , r , u , v , val); st[idx] = min(st[2 * idx] , st[2 * idx + 1]); } int get(int idx , int l , int r , int u , int v){ if(l > v || r < u) return anhnhoem; if(u <= l && r <= v){ return st[idx]; } down(idx); int mid = (l + r) / 2; return min(get(2 * idx , l , mid , u , v) , get(2 * idx + 1 , mid + 1 , r , u , v)); } void solve(void){ cin >> n >> m >> q; for(int i = 1 ; i <= m ; i++) { int l , r; cin >> l >> r; a[r].push_back(l); } for(int i = 1 ; i <= q ; i ++){ int l , r; cin >> l >> r; queries[r].push_back({l , i}); } for(int i = 1 ; i <= n ; i++){ for(auto x : a[i]){ update(1 , 1 , n , x , i , x); } //cout << get(1 , 1 , n , 1 , 4) << endl; for(auto x : queries[i]){ if(get(1 , 1 , n , x.first , i) >= x.first){ res[x.second] = "YES"; } else{ res[x.second] = "NO"; } } } for(int i = 1 ; i <= q ; i++) cout << res[i] << endl; } signed main(void){ ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); solve(); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...