5678过不了,也想不到什么能测出问题的测试集了
#include<stdio.h>
int main()
{
long int n,add=0,l=99999999,r=-1,a,ans=0,num=0;//n表示奶牛头数,ans即answer指最终答案
//a指当前奶牛的身高,num指当前符合题意的奶牛的数量
//l,r分别指当前这一对奶牛中最矮的和最高的
//add指当前在r后面读入且不大于r的奶牛数目(就是说如果有比r高的,就将add和num相加得到新的num)
scanf("%ld", &n);//读入奶牛数
for (int i = 1; i <= n;i++){
scanf("%ld", &a);
if(a>l&&a<=r) add++;
if(a<=l){//如果小于l
l = a;//a成为新的l
if(ans<num)
ans = num;
num = 0;//其他数据重置,从这里开始新的计数
add=0;
r = -1;
continue;
}
if(a>r){//出现新的最高奶牛
num++;
r = a;//a成为新的r
num += add;//num和add相加,得到整个奶牛队长度
add = 0;
if(ans<num)
ans = num;
continue;
}
}
if(ans) printf("%ld", ans+1);
else printf("0");
return 0;
}