1. 程式人生 > >藍橋杯:歷年試題PREV-7— 連號區間數

藍橋杯:歷年試題PREV-7— 連號區間數

符合條件的序列是連續遞增數列。因此查詢所有滿足最大值最小值之差+1是數列元素個數的可能數列。

#include<stdio.h>
#include<stdlib.h>
int main(int argc,char **argv)
{
	int cnt,i,j;
	scanf("%d",&cnt);
	int *array=(int*)calloc(cnt,sizeof(cnt));
	for(i=0;i<cnt;i++)
		scanf("%d",&array[i]);
	int sum=0;
	for(i=0;i<cnt;i++)
	{
		sum++;
		int max=array[i],min=max;
		for(j=i+1;j<cnt;j++)
		{
			max=__max(max,array[j]);
			min=__min(min,array[j]);
			if(max-min==j-i)
				sum++;
		}
	}
	printf("%d\n",sum);
	free(array);
	return EXIT_SUCCESS;
} 

END