제출 #1258780

#제출 시각아이디문제언어결과실행 시간메모리
1258780nasufyroFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
62 ms7240 KiB
#include <bits/stdc++.h> using namespace std; long long n, q, s, t; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> q >> s >> t; long long stamina = 0; vector<long long> high(n + 1, 0); for(long long i=0;i<=n;i++){ cin >> high[i]; } vector<long long> diff(n+1, 0); for(long long i = 1; i <= n; i++) { diff[i] = high[i] - high[i-1]; } long long high_duong=0, high_am=0; for(long long i=1;i<=n;i++){ if(diff[i]>0){ high_duong+=diff[i]; } else{ high_am+=-diff[i]; } } while(q--){ long long l, r, x; cin >> l >> r >> x; if(diff[l]>0){ high_duong-=diff[l]; } else{ high_am+=diff[l]; } diff[l]+=x; if(diff[l]>0){ high_duong+=diff[l]; } else{ high_am+=-diff[l]; } if(r+1<=n){ if(diff[r+1]>0){ high_duong-=diff[r+1]; } else{ high_am+=diff[r+1]; } diff[r+1]-=x; if(diff[r+1]>0){ high_duong+=diff[r+1]; } else{ high_am-=diff[r+1]; } } stamina= -s*high_duong+t*high_am; cout << stamina << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...