제출 #1297755

#제출 시각아이디문제언어결과실행 시간메모리
1297755miyamae_nonoaFoehn Phenomena (JOI17_foehn_phenomena)C++20
0 / 100
357 ms7656 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int maxn = 2e5 + 5; ll a[maxn],n,q,s,t,fem[4*maxn], diff[4 * maxn]; void add(int i, int val) { for (; i <= n; i += i & -i) fem[i] += val; } ll query(int i) { ll res = 0; for (; i > 0; i -= i & -i) res += fem[i]; return res; } ll windUpd(ll x) { if (x > 0) return -s * x; else return -x * t; } void update(int id, ll val) { if (id < 1 || id > n) return; ll old = windUpd(diff[id]); diff[id] += val; ll cur = windUpd(diff[id]); add(id, cur - old); } int main() { cin >> n >> q >> s >> t; cin >> a[0]; for (int i=1;i<=n;i++) cin >> a[i]; for (int i=1;i<=n;i++) diff[i] = a[i] - a[i-1]; for (int i = 1; i <= n; i++) add(i, windUpd(diff[i])); while (q--){ int l,r; ll x; cin >> l >> r >> x; update(l,x); if (r < n) update(r+1,-x); cout << query(n) << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...