Submission #1116421

#TimeUsernameProblemLanguageResultExecution timeMemory
1116421staszic_ojuzFoehn Phenomena (JOI17_foehn_phenomena)C++17
0 / 100
63 ms4424 KiB
#include<bits/stdc++.h> using namespace std; using i64 = int64_t; int main() { ios_base::sync_with_stdio(0); cin.tie(0); i64 N, Q, S, T; cin >> N >> Q >> S >> T; i64 pocz = 0, pop; cin >> pop; vector<i64> wys(N); for (i64 i = 0; i < N; i++) { i64 x; cin >> x; wys[i] = x - pop; pop = x; if (wys[i] < 0) pocz += wys[i] * -1 * T; else pocz -= wys[i] * S; } //cout << pocz << "\n"; for (i64 i = 0; i < Q; i++) { i64 L, R, X; cin >> L >> R >> X; if (wys[L - 1] >= 0 && X > 0) { pocz -= X * S; //cout << -1 * X * S << " :\n"; } else if (wys[L - 1] <= 0 && X < 0) { pocz += X * T; //cout << X * T << " ::\n"; } else if (wys[L - 1] >= 0 && X < 0) { pocz += min(wys[L - 1], X * -1) * S; pocz += max(X * -1 - wys[L - 1], (i64)0) * T; //cout << min(wys[L - 1], X * -1) * S + max(X * -1 - wys[L - 1], (i64)0) * T << " :::\n"; } else { pocz -= min(wys[L - 1] * -1, X) * T; pocz -= max(X + wys[L - 1], (i64)0) * S; //cout << -1 * min(wys[L - 1] * -1, X) * T << " : " << -1 * max(X + wys[L - 1], (i64)0) * S << " ::::\n"; //cout << " :::::: " << wys[L - 1] * -1 << " :::: " << X << "\n"; } wys[L - 1] += X; if (R < N) { if (wys[R] >= 0 && X < 0) { pocz += X * S; //cout << -1 * X * S << " -\n"; } else if (wys[R] <= 0 && X > 0) { pocz += X * T; //cout << X * T << " --\n"; } else if (wys[R] >= 0 && X > 0) { pocz += min(wys[R], X) * S; pocz += max(X - wys[R], (i64)0) * T; //cout << min(wys[R], X) * S + max(X - wys[R], (i64)0) * T << " ---\n"; } else { pocz -= min(wys[R] * -1, X * -1) * T; pocz -= max(X * -1 + wys[R], (i64)0) * S; //cout << -1 * min(wys[R] * -1, X * -1) * T - max(X * -1 + wys[R], (i64)0) * S << " ----\n"; } wys[R] -= X; } cout << pocz << "\n"; /* cout << "\n"; for (i64 k = 0; k < wys.size(); k++) { cout << wys[k] << " "; } cout << "\n\n";*/ /*for (i64 k = 0; k < wys.size(); k++) { cout << wys[k] << " "; } cout << "\n";*/ } return 0; } /* #include<bits/stdc++.h> using namespace std; using i64 = int64_t; int main() { //ios_base::sync_with_stdio(0); //cin.tie(0); i64 N, Q, S, T; cin >> N >> Q >> S >> T; i64 pocz = 0, pop; cin >> pop; vector<i64> wys(N); for (i64 i = 0; i < N; i++) { i64 x; cin >> x; wys[i] = x - pop; pop = x; if (wys[i] < 0) pocz += wys[i] * -1 * T; else pocz -= wys[i] * S; } cout << pocz << "\n"; for (i64 i = 0; i < Q; i++) { i64 L, R, X; cin >> L >> R >> X; if (wys[L - 1] >= 0 && X > 0) { pocz -= X * S; cout << X * S << " :\n"; } else if (wys[L - 1] <= 0 && X < 0) { pocz += X * T; cout << X * T << " ::\n"; } else if (wys[L - 1] >= 0 && X < 0) { pocz += min(wys[L - 1], X * -1) * S; pocz += max(X * -1 - wys[L - 1], (i64)0) * T; } else { pocz -= min(wys[L - 1] * -1, X) * T; pocz -= max(X + wys[L - 1], (i64)0) * S; } wys[L - 1] += X; if (R < N) { if (wys[R] >= 0 && X < 0) { pocz -= X * S; cout << X * S << " -\n"; } else if (wys[R] <= 0 && X > 0) { pocz += X * T; cout << X * T << " --\n"; } else if (wys[R] >= 0 && X > 0) { pocz += min(wys[R], X) * S; pocz += max(X - wys[R], (i64)0) * T; } else { pocz -= min(wys[R] * -1, X) * T; pocz -= max(X + wys[R], (i64)0) * S; } wys[R] += X; } cout << pocz << "\n"; /*for (i64 k = 0; k < wys.size(); k++) { cout << wys[k] << " "; } cout << "\n"; } return 0; } */

Compilation message (stderr)

foehn_phenomena.cpp:197:9: warning: "/*" within comment [-Wcomment]
  197 |         /*for (i64 k = 0; k < wys.size(); k++)
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...