fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8. ios_base::sync_with_stdio(false);
  9. cin.tie(nullptr);
  10.  
  11. int n;
  12. cin >> n;
  13. vector<int> a(n);
  14.  
  15. // Nhập độ cao
  16. for (int i = 0; i < n; i++) {
  17. cin >> a[i];
  18. }
  19.  
  20. // Tạo mảng pref_max và suff_max
  21. vector<int> pref_max(n), suff_max(n);
  22.  
  23. // Tính pref_max
  24. pref_max[0] = a[0];
  25. for (int i = 1; i < n; i++) {
  26. pref_max[i] = max(pref_max[i - 1], a[i]);
  27. }
  28.  
  29. // Tính suff_max
  30. suff_max[n - 1] = a[n - 1];
  31. for (int i = n - 2; i >= 0; i--) {
  32. suff_max[i] = max(suff_max[i + 1], a[i]);
  33. }
  34.  
  35. // Tính tổng lượng nước đọng
  36. long long ans = 0;
  37. for (int i = 0; i < n; i++) {
  38. ans += max(0, min(pref_max[i], suff_max[i]) - a[i]);
  39. }
  40.  
  41. cout << ans << '\n';
  42. return 0;
  43. }
Success #stdin #stdout 0.01s 5284KB
stdin
12
0 1 0 2 1 0 1 3 2 1 2 1
stdout
6