Submission #1199442

#TimeUsernameProblemLanguageResultExecution timeMemory
1199442hyl_backupFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
60 ms7240 KiB
//Foehn Phenomena #include <iostream> #define MIN(a, b) ((a<b)? a :b ) #define MAX(a, b) ((a>b)? a :b ) long long n, q, s, t, l, r, x, sum; long long arr[200007]; long long dif[200007]; int main(){ std::cin.tie(0); std::ios_base::sync_with_stdio(0); std::cin >> n >> q >> s >> t; sum = 0; for(int i = 0; i<=n; ++i){ std::cin >> arr[i]; if(i){ dif[i]=arr[i]-arr[i-1]; //std::cout << dif[i] << ' '; if(dif[i]>0){ sum+=-s*dif[i]; } else{ sum+=-t*dif[i]; } //std::cout << '|'<<sum <<'|'; } } //std::cout << "bas: "<< sum << '\n'; for(int i = 0; i<q; ++i){ std::cin >> l >> r >> x; if(dif[l]>0){ sum-=-s*dif[l]; } else{ sum-=-t*dif[l]; } if(r+1<=n){ if(dif[r+1]>0){ sum-=-s*dif[r+1]; } else{ sum-=-t*dif[r+1]; } } dif[l]+=x; dif[r+1]-=x; if(dif[l]>0){ sum+=-s*dif[l]; } else{ sum+=-t*dif[l]; } if(r+1<=n){ if(dif[r+1]>0){ sum+=-s*dif[r+1]; } else{ sum+=-t*dif[r+1]; } } std::cout << sum << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...