Submission #422335

#TimeUsernameProblemLanguageResultExecution timeMemory
422335jlallas384Foehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
772 ms11480 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; struct FT{ vector<ll> ft; int n; FT(int n) : n(n),ft(n+1){}; void upd(int idx,int val){ for(; idx <= n; idx += idx & -idx){ ft[idx] += val; } } ll qry(int idx){ ll sum = 0; for(; idx > 0; idx -= idx & -idx){ sum += ft[idx]; } return sum; } }; int main(){ int n,q,s,t; cin >> n >> q >> s >> t; auto f = [&](ll a,ll b){ if(a < b) return (b - a) * s * -1; return (a - b) * t; }; FT ft(n); int prv = 0; ll ans = 0; for(int i = 0; i <= n; i++){ int x; cin >> x; if(i){ ans += f(prv,x); ft.upd(i,x); ft.upd(i + 1,-x); } prv = x; } while(q--){ int l,r,x; cin >> l >> r >> x; ans -= f(ft.qry(l-1),ft.qry(l)); if(r != n){ ans -= f(ft.qry(r),ft.qry(r+1)); } ft.upd(l,x); ft.upd(r + 1,-x); ans += f(ft.qry(l-1),ft.qry(l)); if(r != n){ ans += f(ft.qry(r),ft.qry(r+1)); } cout << ans << '\n'; } }

Compilation message (stderr)

foehn_phenomena.cpp: In constructor 'FT::FT(int)':
foehn_phenomena.cpp:7:9: warning: 'FT::n' will be initialized after [-Wreorder]
    7 |     int n;
      |         ^
foehn_phenomena.cpp:6:16: warning:   'std::vector<long long int> FT::ft' [-Wreorder]
    6 |     vector<ll> ft;
      |                ^~
foehn_phenomena.cpp:8:5: warning:   when initialized here [-Wreorder]
    8 |     FT(int n) : n(n),ft(n+1){};
      |     ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...