Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180628 C班詹皓杰 收集雨水 C++ 通过 100 3 MS 296 KB 482 2024-08-21 16:40:12

Tests(10/10):


#include<iostream> #include<stack> using namespace std; typedef long long lld; int a[10100]; stack<int> s; int main(){ int n; cin>>n; for(int i = 0; i < n; i++) cin>>a[i]; lld ans = 0; for(int i = 0; i < n; i++){ while(!s.empty() && a[s.top()]<a[i]){ int l = s.top(); s.pop(); if(s.empty()){ break; } lld d = i-s.top()-1; int h = min(a[s.top()],a[i]); ans += d*(h-a[l]); } s.push(i); } cout<<ans; return 0; }


测评信息: