因为n个数字肯定是1~n,那么在某个区间内,最大的数减去最小的数为区间长的话,那么这个区间肯定是连号区间
#include<stdio.h>
#include<string.h>
int num[50010];
int main(){
int n,max,min,i,s,j;
while(~scanf("%d",&n)){
memset(num,0,sizeof(num));
for(i=0;i<n;i++){
scanf("%d",&num[i]);
}
for(s=i=0;i<n;i++){
max=min=num[i];
for(j=i+1;j<n;j++){
if(num[j]>max) max=num[j];
if(num[j]<min) min=num[j];
if(max-min==(j-i)) s++;
}
}
printf("%d\n",s+n);
}
return 0;
}