제출 #946955

#제출 시각아이디문제언어결과실행 시간메모리
946955mariamp1Foehn Phenomena (JOI17_foehn_phenomena)C++17
0 / 100
429 ms9580 KiB
#include <iostream> #include <vector> #include <algorithm> //#define int long long; using namespace std; const int maxn = 2e5+10; int n, q, a[maxn]; int sum, dif[maxn], s, t; int32_t main() { cin >> n >> q >> s >> t; for(int i = 0 ; i <= n; i++) cin >> a[i]; for(int i = 1 ; i <= n ; i++) { dif[i] = a[i]-a[i-1]; if(dif[i] <= 0) sum += abs(dif[i]*t); else sum -= abs(dif[i]*s); } //cout << sum << endl; dif[0] = dif[n+1] = 0; //for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' '; //cout << endl; for(int i = 0 ; i < q ; i++) { int l, r, x; cin >> l >> r >> x; //cout << dif[l] << ' ' << dif[r+1] << endl; if(dif[l] <= 0) sum -= abs(dif[l]*t); else sum += abs(dif[l]*s); if(dif[r+1] <= 0) sum -= abs(dif[r+1]*t); else sum += abs(dif[r+1]*s); dif[l] += x; if(r+1 <= n) dif[r+1] -= x; if(dif[l] <= 0) sum += abs(dif[l]*t); else sum -= abs(dif[l]*s); if(dif[r+1] <= 0) sum += abs(dif[r+1]*t); else sum -= abs(dif[r+1]*s); //cout << dif[l] << ' ' << dif[r+1] << endl; cout << sum << endl; // for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' '; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...