Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180713 C班-张腾午 收集雨水 C++ 通过 100 2 MS 284 KB 464 2024-08-21 17:27:05

Tests(10/10):


#include<bits/stdc++.h> using namespace std; int a[10005],n; stack<int> s; int main() { int i; long long ans=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0 ;i<n;i++) { while(!s.empty()&&a[s.top()]<a[i]) { int low=s.top(); s.pop(); if(s.empty()) break; long long dis=i-s.top()-1; int maxx=min(a[s.top()],a[i]); ans+=dis*(maxx-a[low]); } s.push(i); } printf("%lld",ans); return 0; }


测评信息: