bzoj1660

来源:互联网 发布:优化国税环境建设 编辑:程序博客网 时间:2024/05/18 16:54

分析:单调栈。。直接计算最后的贡献就会好算很多,不要单独算c,不然想半天想不出来。。

#include<iostream>  #include<cstdio>  using namespace std;  int n,top,a[80001],s[80001];  long long ans;  int main()  {      scanf("%d",&n);      for(int i=1;i<=n;i++)         scanf("%d",&a[i]);      for(int i=1;i<=n;i++)      {          if(a[i]<s[top])              ans+=top;          else          {              while(a[i]>=s[top]&&top)                  top--;              ans+=top;          }          s[++top]=a[i];      }      printf("%lld",ans);      return 0;  } 
0 0