AcWing 1210. 连号区间数
原题链接
简单
作者:
牛奶小柒Luke
,
2021-03-25 19:24:14
,
所有人可见
,
阅读 239
简单枚举题
先枚举左端点,再枚举右端点,不断更新最大值跟最小值即为递增排序后的左端点和右端点,
当递增排序后能得到一个长度为 R−L+1 的“连续”数列,则区间数+1
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1e4 + 10;
int n,res;
int a[N];
int main(){
scanf("%d",&n);
for(int i = 0;i < n;++i){
scanf("%d",&a[i]);
}
int INF = 1e8;
for(int i = 0;i < n;++i){
int maxn = -INF,minn = INF;
for(int j = i;j < n;++j){
minn = min(minn,a[j]);
maxn = max(maxn,a[j]);
if(maxn - minn == j - i) res++;
}
}
printf("%d\n",res);
return 0;
}