Submission #1156972

#TimeUsernameProblemLanguageResultExecution timeMemory
1156972EsgeerFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
63 ms5704 KiB
#include <bits/stdc++.h> #define int long long #pragma GCC optimize("O3") #define vi vector<int> #define vb vector<bool> #define F(i, s, e) for(int i = s; i < e; i++) #define sp <<' '<< #define pii pair<int, int> #define fi first #define se second #define pb push_back #define vvi vector<vi> #define vpi vector<pii> #define vvpi vector<vpi> #define endl '\n' const int mod = 1e9 + 7; using namespace std; const int N = 1e5+5; const int inf = 1e15; void solve() { int n, m, X, Y; cin >> n >> m >> X >> Y; n++; vi a(n+2, 0); F(i, 0, n) cin >> a[i]; for(int i = n-1; i > 0; i--) a[i] -= a[i-1]; int ans = 0; F(i, 1, n) { if(a[i] > 0) ans -= X * a[i]; else ans -= Y * a[i]; } F(i, 0, m) { int l, r, v; cin >> l >> r >> v; if(l > 0) { if(a[l] > 0) ans += X * a[l]; else ans += Y * a[l]; } if(r+1 < n) { if(a[r+1] > 0) ans += X * a[r+1]; else ans += Y * a[r+1]; } a[l] += v; a[r+1] -= v; if(l > 0) { if(a[l] > 0) ans -= X * a[l]; else ans -= Y * a[l]; } if(r+1 < n) { if(a[r+1] > 0) ans -= X * a[r+1]; else ans -= Y * a[r+1]; } cout << ans << endl; } } int32_t main() { cin.tie(0); ios_base::sync_with_stdio(0); #ifdef Local freopen("local.in", "r", stdin); freopen("local.out", "w", stdout); #endif int t = 1; //cin >> t; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...