Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180624 C班-范浩宇 收集雨水 C++ 通过 100 3 MS 292 KB 600 2024-08-21 16:38:23

Tests(10/10):


#include <bits/stdc++.h> using namespace std; int height[10005], n; stack<int> st; int main() { cin >> n; for(int i = 0;i < n;i++) cin >> height[i]; long long ans = 0; for (int i = 0;i < n;i++) { while (!st.empty() && height[st.top()] < height[i]) { int low = st.top(); st.pop(); if (st.empty()) break; long long dist = i - st.top() - 1; int h = min(height[st.top()], height[i]); ans += dist * (h - height[low]); } st.push(i); } cout << ans << endl; return 0; }


测评信息: