Submission #1180051

#TimeUsernameProblemLanguageResultExecution timeMemory
1180051niepamietamhaslaFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
60 ms5904 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 2e5 + 5; ll s, t; ll diff[MAXN]; ll w = 0; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q; cin >> n >> q; cin >> s >> t; t = -t; ll a, b, c; ll prev = 0; for(int i = 0; i <= n; ++i){ cin >> a; diff[i] = a - prev; prev = a; if(diff[i] <= 0){ w += t * diff[i]; } else{ w -= s * diff[i]; } //cout << i << " " << diff[i] << " d\n"; } //cout << w << " w\n"; for(int i = 0; i < q; ++i){ cin >> a >> b >> c; if(c > 0){ if(diff[a] <= 0 and diff[a] + c > 0){ //cout << "#\n"; w -= t * diff[a]; diff[a] += c; w -= s * diff[a]; } else if(diff[a] <= 0){ //cout << "$\n"; w += t * c; diff[a] += c; } else{ //cout << "%\n"; w -= s * c; diff[a] += c; } if(b == n){ cout << w << "\n"; continue; } if(diff[b + 1] > 0 and diff[b + 1] - c <= 0){ //cout << "!\n"; w += s * diff[b + 1]; diff[b + 1] -= c; w += t * diff[b + 1]; } else if(diff[b + 1] > 0){ //cout << "@\n"; w += s * c; diff[b + 1] -= c; } else{ //cout << "&\n"; w -= t * c; diff[b + 1] -= c; } } else{ if(diff[a] > 0 and diff[a] + c <= 0){ //cout << "ab\n"; w += s * diff[a]; diff[a] += c; w += t * diff[a]; } else if(diff[a] > 0){ //cout << "bc\n"; w -= s * c; diff[a] += c; } else{ //cout << "pc\n"; w += t * c; diff[a] += c; } if(b == n){ cout << w << "\n"; continue; } if(diff[b + 1] <= 0 and diff[b + 1] - c > 0){ //cout << "wy\n"; w -= t * diff[b + 1]; diff[b + 1] -= c; w -= s * diff[b + 1]; } else if(diff[b + 1] <= 0){ //cout << "ka\n"; w -= t * c; diff[b + 1] -= c; } else{ //cout << "ja\n"; w += s * c; diff[b + 1] -= c; } } cout << w << "\n"; // for(int j = 1; j <= n; ++j){ // cout << diff[j] << " d\n"; // } // cout << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...