Submission #1141316

#TimeUsernameProblemLanguageResultExecution timeMemory
1141316LuvidiCurtains (NOI23_curtains)C++20
24 / 100
1594 ms29376 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> #define fs first #define sc second #define pb push_back const int maxn=5e5; pii seg[4*maxn]; int lzy[4*maxn]; void prop(int v){ if(lzy[v]){ seg[2*v+1]={lzy[v],lzy[v]}; lzy[2*v+1]=lzy[v]; seg[2*v+2]={lzy[v],lzy[v]}; lzy[2*v+2]=lzy[v]; lzy[v]=0; } } pii mrg(pii p1,pii p2){ return {min(p1.fs,p2.fs),max(p1.sc,p2.sc)}; } pii upd(int v,int l,int r,int l2,int r2,int x,int y){ if(l2>r||r2<l||seg[v].sc<x)return seg[v]; if(l2<=l&&r<=r2&&seg[v].fs>=x){ lzy[v]=y; return seg[v]={y,y}; } prop(v); int m=(l+r)/2; return seg[v]=mrg(upd(2*v+1,l,m,l2,r2,x,y),upd(2*v+2,m+1,r,l2,r2,x,y)); } pii upd2(int v,int l,int r,int x,int y){ if(x<l||x>r)return seg[v]; if(l==r)return seg[v]={y,y}; prop(v); int m=(l+r)/2; return seg[v]=mrg(upd2(2*v+1,l,m,x,y),upd2(2*v+2,m+1,r,x,y)); } int get(int v,int l,int r,int i){ if(l==r)return seg[v].fs; int m=(l+r)/2; prop(v); if(i<=m)return get(2*v+1,l,m,i); return get(2*v+2,m+1,r,i); } void solve() { int n,m,q; cin>>n>>m>>q; vector<int> a[n+1]; while(m--){ int l,r; cin>>l>>r; a[r].pb(l); } int ans[q]; vector<pii> qry[n+1]; for(int i=0;i<q;i++){ int l,r; cin>>l>>r; qry[r].pb({l,i}); } for(int i=0;i<4*maxn;i++)seg[i]={-1,-1}; for(int i=1;i<=n;i++){ for(int l:a[i]){ upd2(0,1,n,l,i); upd(0,1,n,1,l,l-1,i); } for(auto[l,idx]:qry[i]){ ans[idx]=get(0,1,n,l)==i; } } for(int i=0;i<q;i++){ if(ans[i])cout<<"YES\n"; else cout<<"NO\n"; } } int main() { #ifdef FPO freopen("in","r",stdin); freopen("out","w",stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); 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...