Description
Input
Output
Sample Input
1
2
3
Sample Output
HINT
30%的測試數據 n<=500;
50%的測試數據 n <= 20,000。
Source
單調棧亂搞
#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn=1000007;
int s[maxn];
int main(){
int n;
scanf("%d",&n);
int ll=0;
long long ans=0;
s[0]=1300000000;
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
while(ll&&s[ll]<=a){
if(a>s[ll-1]){
ans+=s[ll-1];
}
else ans+=a;ll--;
}
s[++ll]=a;
}
for(int i=1;i<ll;i++)
ans+=s[i];
printf("%lld",ans);
return 0;
}