首页 > 代码库 > 武汉科技大学ACM:1003: 看美女

武汉科技大学ACM:1003: 看美女

Problem Description

“排排站,赏美女……”

YJ师兄在今年牡丹江赛区人品爆发,怒摘银奖,心情倍好,现组织大家去黄家湖边站成一排看美女 ^.^

N个人站成一排。不巧,美女们只在队伍的最左边和最右边,你们可以向左看或者向右看。如果第i个人向左看,当且仅当第i个人的身高h[i]>=h[j] ( j=1...i-1) 时,他能看到美女;如果第i个人向右看,当且仅当第i个人的身高h[i]>=h[j] (j=i+1..N)时,他能看见美女。已知N个人的身高,求最多有多少人能看到美女。

Input

先输入一个正整数T,表示有T组数据

每组数据:第一行 N。N<=100 000

     第二行N个整数,表示每个人的身高(1<=h<=20000)

Output

输出能看到美女的人数。

Sample Input

151 4 7 6 2

Sample Output

5
 1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5     int T,n,i,a[100005],b[100005]; 6     int m_ax,sum; 7     scanf("%d",&T); 8     while(T--) 9     {10         memset(b,0,sizeof(b));11         scanf("%d",&n);12         for(i=1; i<=n; i++)13             scanf("%d",&a[i]);14         m_ax=a[1];15         sum=0;16         for(i=1; i<=n; i++)17         {18             if(a[i]>=m_ax)19             {20                 m_ax=a[i];21                 sum++;22                 b[i]=1;23             }24         }25         m_ax=a[n];26         for(i=n; i>0; i--)27         {28             if(a[i]>=m_ax)29             {30                 m_ax=a[i];31                 if(b[i]==0)32                     sum++;33             }34         }35         printf("%d\n",sum);36     }37     return 0;38 }

 

武汉科技大学ACM:1003: 看美女