AcWing 1210. 连号区间数
原题链接
简单
作者:
尼古拉斯小布丁
,
2021-04-02 11:23:57
,
所有人可见
,
阅读 248
先枚举区间左端点,再枚举区间右端点,判断下区间最大值-最小值==j-i即可
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 10000, INF = 100000;
int n;
int a[N];
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int res=0;
for(int i=0;i<n;i++){ //枚举区间左端点
int minv = INF, maxv = -INF;
for(int j=i;j<n;j++){ //枚举区间右端点
minv = min(a[j], minv);
maxv = max(a[j], maxv);
// printf("%d %d\n",a[j],maxv-minv);
if(maxv-minv == j-i) res++;
}
}
cout<<res<<endl;
}