Submission #170649

#TimeUsernameProblemLanguageResultExecution timeMemory
170649mdn2002Foehn Phenomena (JOI17_foehn_phenomena)C++14
10 / 100
953 ms17628 KiB
#include<bits/stdc++.h> using namespace std; const long long mod=998244353; long long n,q,s,t,tree[800005],lazy[800005],ans; void up(int nod,int l,int r,int x,int y,long long val) { if(lazy[nod]!=0) { tree[nod]+=(r-l+1)*lazy[nod]; if(l!=r) { lazy[nod*2]+=lazy[nod]; lazy[nod*2+1]+=lazy[nod]; } lazy[nod]=0; } if(r<x||y<l)return; if(x<=l&&r<=y) { tree[nod]+=(r-l+1)*val; if(l!=r) { lazy[nod*2]+=val; lazy[nod*2+1]+=val; } return; } int mid=(l+r)/2; up(nod*2,l,mid,x,y,val); up(nod*2+1,mid+1,r,x,y,val); tree[nod]=tree[nod*2]+tree[nod*2+1]; } long long qu(int nod,int l,int r,int x) { if(lazy[nod]!=0) { tree[nod]+=(r-l+1)*lazy[nod]; if(l!=r) { lazy[nod*2]+=lazy[nod]; lazy[nod*2+1]+=lazy[nod]; } lazy[nod]=0; } if(x<l||r<x)return 0; if(l==r)return tree[nod]; int mid=(l+r)/2; if(l<=x&&x<=mid)return qu(nod*2,l,mid,x); return qu(nod*2+1,mid+1,r,x); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen(".in","r",stdin); //freopen(".out","w",stdout); cin>>n>>q>>s>>t; long long b; cin>>b; up(1,0,n,0,0,b); for(int i=0;i<n;i++) { long long a; cin>>a; long long dif=b-a; if(dif>=0)ans+=dif*t; else ans+=dif*s; up(1,0,n,i+1,i+1,a); b=a; } while(q--) { int l,r; long long x; cin>>l>>r>>x; long long oa; long long ob; up(1,0,n,l,r,x); long long a=oa+x; long long b=ob+x; long long c; long long d; if(l>0) { long long dif=c-oa; if(dif>=0)ans-=dif*t; else ans-=dif*s; dif=c-a; if(dif>=0)ans+=dif*t; else ans+=dif*s; } if(r<n) { long long dif=ob-d; if(dif>=0)ans-=dif*t; else ans-=dif*s; dif=b-d; if(dif>=0)ans+=dif*t; else ans+=dif*s; } cout<<ans<<endl; } }

Compilation message (stderr)

foehn_phenomena.cpp: In function 'int main()':
foehn_phenomena.cpp:86:23: warning: 'c' may be used uninitialized in this function [-Wmaybe-uninitialized]
             long long dif=c-oa;
                       ^~~
foehn_phenomena.cpp:86:23: warning: 'oa' may be used uninitialized in this function [-Wmaybe-uninitialized]
foehn_phenomena.cpp:95:23: warning: 'ob' may be used uninitialized in this function [-Wmaybe-uninitialized]
             long long dif=ob-d;
                       ^~~
foehn_phenomena.cpp:95:23: warning: 'd' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...