连号区间的意思是一个数组(没有按大小排好的),按排的的位数取第L个到第R个元素,取完后再按大小排,如果R−L+1 == max—min
#include<stdio.h>
int max(int *a,int *b)
{
if(*a>*b)
return *a;
else
return *b;
}
int min(int* a,int* b)
{
if(*a>*b)
return *b;
else
return *a;
}
int main()
{
int n,s[10010];
int sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
for(int j=1;j<=n;j++)
{
int max_s=0,min_s=10000000;
for(int k=j;k<=n;k++)
{
max_s=max(&max_s,&s[k-1]),min_s=min(&min_s,&s[k-1]);
if(max_s - min_s + 1 == k - j + 1)
{
sum++;
//printf("[%d-%d]",j,k);
}
}
}
printf("%d",sum);
}