Submission #167856

#TimeUsernameProblemLanguageResultExecution timeMemory
167856theStaticMindFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
200 ms13148 KiB
#include<bits/stdc++.h> #define mp make_pair #define pb push_back #define ii pair<int,int> #define all(x) (x).begin(),(x).end() #define INF 100000000000000000 #define modulo 1000000007 #define mod 998244353 #define int long long int using namespace std; struct Fenwick{ vector<int> bit; int size; void modify(int j,int v){ j++; for(;j<size;j+=j&-j)bit[j]+=v; } int query(int j){ j++; if(j>=size)j--; int v=0; for(;j>0;j-=j&-j)v+=bit[j]; return v; } Fenwick(int s){ size=s; bit=vector<int>(s,0); } }; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); // freopen("q.gir","r",stdin); // freopen("q.cik","w",stdout); int n,q,dec,inc; cin>>n>>q>>dec>>inc; Fenwick bit(n+2); vector<int>arr(n+1,0); for(int i=0;i<=n;i++)cin>>arr[i]; arr.pb(arr.back()); int sum=0; for(int i=1;i<=n;i++){ int diff=arr[i]-arr[i-1]; if(diff>=0)sum-=diff*dec; else sum-=diff*inc; } while(q--){ int l,r,x; cin>>l>>r>>x; int dl=0,dr=0; dl=arr[l]+bit.query(l)-arr[l-1]-bit.query(l-1); dr=arr[r+1]+bit.query(r+1)-arr[r]-bit.query(r); bit.modify(r+1,-x); bit.modify(l,x); int L=bit.query(l)+arr[l]; int R=bit.query(r)+arr[r]; int dL=0,dR=0; dL=arr[l]+bit.query(l)-arr[l-1]-bit.query(l-1); dR=arr[r+1]+bit.query(r+1)-arr[r]-bit.query(r); if(dl>=0)sum+=dl*dec; else sum+=dl*inc; if(dr>=0)sum+=dr*dec; else sum+=dr*inc; if(dL>=0)sum-=dL*dec; else sum-=dL*inc; if(dR>=0)sum-=dR*dec; else sum-=dR*inc; cout<<sum<<"\n"; } }

Compilation message (stderr)

foehn_phenomena.cpp: In function 'int32_t main()':
foehn_phenomena.cpp:55:17: warning: unused variable 'L' [-Wunused-variable]
             int L=bit.query(l)+arr[l];
                 ^
foehn_phenomena.cpp:56:17: warning: unused variable 'R' [-Wunused-variable]
             int R=bit.query(r)+arr[r];
                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...