Submission #1257480

#TimeUsernameProblemLanguageResultExecution timeMemory
1257480DangerNoodle7591Monkey and Apple-trees (IZhO12_apple)C++20
0 / 100
42 ms63052 KiB
#include <bits/stdc++.h> using namespace std; #define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define endl '\n' #define int long long int #define ll long long #define pb push_back #define p push #define ins insert #define f first #define s second #define N 1000005 #define M 11 #define mod 998244353 #define big 1000000000000000000 vector<int> seg(4 * N, 0); vector<int> lazy(4 * N, 0); void ppush(int x,int l,int r){ if(lazy[x]==0)return; lazy[x]=0; seg[x]=(r-l+1); if(l!=r){ int mid=(l+r)/2; lazy[x*2]=(mid-l+1); lazy[x*2+1]=(r-(mid+1)+1); } } void up(int x,int l,int r,int s,int e){ if(l>r)return; ppush(x,l,r); if(seg[x]==(r-l+1))return; if(l>e||r<s)return; if(s<=l&&r<=e){ lazy[x]=(r-l+1); ppush(x,l,r); return; } int mid=(l+r)/2; up(x*2,l,mid,s,e);up(x*2+1,mid+1,r,s,e); seg[x]=seg[x*2]+seg[x*2+1]; } int qua(int x,int l,int r,int s,int e){ if(l>r||r<s||e<l)return 0; ppush(x,l,r); if(s<=l&&r<=e)return seg[x]; int mid=(l+r)/2; return qua(x*2,l,mid,s,e)+qua(x*2+1,mid+1,r,s,e); } signed main(){ lalala; int q;cin>>q; int c=0; while(q--){ int ok,x,y;cin>>ok>>x>>y; x+=c; y+=c; if(ok==1){ int ans=qua(1,1,N,x,y); cout<<ans<<endl; c=ans; continue; } up(1,1,N,x,y); } }
#Verdict Execution timeMemoryGrader output
Fetching results...