武汉科技大学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

1
5
1 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 }
时间: 2024-08-04 00:55:28

武汉科技大学ACM:1003: 看美女的相关文章

武汉科技大学ACM:1006: 我是老大

Problem Description 今年是2021年,正值武汉科技大学 ACM俱乐部成立10周年.十周年庆祝那天,从ACM俱乐部走出去的各路牛人欢聚一堂,其乐融融.庆祝晚会上,大家纷纷向俱乐部伸出援手,帮助俱乐部度过 经济难关(经费严重不足).其中就职于谷歌的BobLee.Facebook的YYD,自己创办ILOVEMCB公司的MCB,苹果的明爷,IBM的胖富 帅,微软的男神坐在一桌上.胖富帅说我捐a万美元,明爷说a万美元算什么我捐你的两倍,男神说我捐你们两和的4/5,YYD说你们太年轻了,

武汉科技大学ACM :1003: 零起点学算法14——三位数反转

Problem Description 水题 Input 输入1个3位数(题目包含多组测试数据) Output 分离该3位数的百位.十位和个位,反转后输出(每组测试数据一行) Sample Input 250 Sample Output 052 HINT 分离出各位数字可以用取余和除数 注意在C语言里,2个整数相乘除结果还是整数 比如8/3在C语言里结果是2 取余采用符号% 比如8%3的结果应该是2即8除以3后的余数 1 #include <stdio.h> 2 3 int main() 4

武汉科技大学ACM :1003: 零起点学算法67——统计字母数字等个数

Problem Description 输入一串字符,统计这串字符里的字母个数,数字个数,空格字数以及其他字符(最多不超过100个字符) Input 多组测试数据,每行一组 Output 每组输出一行,分别是字母个数,数字个数,空格字数以及其他字符个数 Sample Input I am a student in class 1. I think I can! Sample Output 18 1 6 1 10 0 3 1 HINT char str[100];//定义字符型数组 while(g

武汉科技大学ACM :1003: 零起点学算法78——牛牛

Problem Description 牛牛是一种纸牌游戏,总共5张牌,规则如下: 如果找不到3张牌的点数之和是10的倍数,则为没牛: 如果其中3张牌的点数之和是10的倍数,则为有牛,剩下两张牌的点数和对10取余数,余数是几,就是牛几,特别的当余数是0的时候是牛牛: 例如: 1 2 3 4 5, 1 + 4 + 5 = 0 (mod 10),2 + 3 = 5(mod 10), 为牛5. Input 第一行输入一个整数T(T <= 100),表示有几组数据.每组数据占一行,5 个数, 每个数的范

武汉科技大学ACM :1001: A+B for Input-Output Practice (I)

Problem Description Your task is to Calculate a + b. Too easy?! Of course! I specially designed the problem for acm beginners.  You must have found that some problems have the same titles with this one, yes, all these problems were designed for the s

武汉科技大学ACM :1001: 华科版C语言程序设计教程(第二版)课后习题3.12

Problem Description 输入n,输出对应的边长为n的空心正六边形. 为方便看图,样例中点 '.' 表示空格,打印图形时请打印空格而非小圆点. Input 边长n.(n<=20) Output 边长为n的正六边形 Sample Input 5 Sample Output .....***** ....*.....* ...*.......* ..*.........* .*...........* ..*.........* ...*.......* ....*.....* ...

武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18

Problem Description 验证哥德巴赫猜想:任何充分大(>=4)的偶数都可以用两个素数之和表示. Input 输入一个偶数n.(2<n<=10000) Output 找到a.b使得 n=a+b 其中a.b为两个素数,且a<=b. Sample Input 4 100 Sample Output 2 2 3 97 1 #include <iostream> 2 3 #include<math.h> 4 5 using namespace std;

武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)例题4.13

Problem Description 输入两个整数,求他们的最大公约数和最小公倍数. Input 两个整数. Output 最大公约数和最小公倍数. Sample Input 12 9 Sample Output 3 36 HINT 可以把求最小公约数和最小公倍数写成函数,方便以后调用. 1 #include <stdio.h> 2 3 void main() 4 5 { 6 7 int m,n; 8 9 while(scanf("%d%d",&m,&n)

武汉科技大学ACM :1002: 零起点学算法38——求阶乘和

Problem Description 输入一个正整数n(n<=10),计算 S=1!+2!+3!+...+n! Input 输入一个正整数n(n<=10)(多组数据) Output 输出S(每组数据一行) Sample Input 2 Sample Output 3 #include<stdio.h> int main() { long int s,a; int i,n; while(scanf("%d",&n)!=EOF) { s=0; a=1; f