#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
multiset<long long>mst;
long long a[100007];
int main(){
long long n;
cin>>n;
long long x;
for(long long i=0;i<n;++i){
cin>>x;
a[x]=i;
}
mst.insert(-1);
mst.insert(-1);
mst.insert(n);
mst.insert(n);
long long ans=0;
set<long long>::iterator pos,nex,pre,pree;
for(long long i=n;i;--i){//倒着插,使得集合内除了初始插入的两个-1和两个n其余的位置它们的值都比后插入的值大
pos=mst.upper_bound(a[i]);//比当前i的值大的下一个值的位置
nex=next(pos);//比pos大的下一个值的位置
pre=prev(pos);//比当前i的值小的上一个值的位置
pree=prev(pre);//比pre小的上一个值的位置
ans+=i*((*nex-*pos)*(a[i]-*pre)+(*pos-a[i])*(*pre-*pree));//区间内只有一个值比当前i值大
mst.insert(a[i]);//将当前值的位置插入
}
cout<<ans;
return 0;
}

最新文章

  1. python 3.x urllib学习
  2. HTML基础(1)
  3. hdu 2586(LCA在线ST)
  4. 性能测试-Jmeter
  5. [AngularJS] TweenList 3D + AngularJS Animate
  6. es5 和 es6 class
  7. IAR ERROR --- [Li006]
  8. C#接口的使用
  9. HDU2571:命运(DP)
  10. 集美大学网络1413第九次作业成绩(团队五) -- 测试与发布(Alpha版本)
  11. (二十六)svn的问题二
  12. Docker学习——Lepus部署
  13. .NET Core微服务之基于Consul实现服务治理(续)
  14. AJAX的简单示例:注册校验
  15. 5月17 AJAX返回类型-------JSON和XML
  16. jpa orderby
  17. YOLO v2 损失函数源码分析
  18. centos php Zookeeper kafka扩展安装
  19. FIS3常用配置
  20. jsp中9个隐含对象

热门文章

  1. 南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup
  2. Integer数值小于127时使用==比较的坑
  3. [Python] Tkinter的食用方法_01_简单界面
  4. 【PAT甲级】1097 Deduplication on a Linked List (25 分)
  5. 记一次深坑,dubbo暴露的服务无法注册到zookeeper的原因
  6. NPC脚本界面自定义美化参数说明
  7. Python实现mysql数据库增删改查
  8. 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。
  9. 操作系统OS - 进程的状态切换
  10. Spark Streaming实践和优化