看美女
时间限制: 1000ms内存限制: 128000KB 64位整型: Java 类名:
上一题 提交 运行结果 统计 讨论版 下一题
类型:
没有
添加
题目描述
“排排站,赏美女……”
Fujun师兄在今年南京赛区人品爆发,怒摘银奖,心情倍好,现组织大家去海边站成一排看美女 ^.^
N个人站成一排。不巧,美女们只在队伍的最左边和最右边,你们可以向左看或者向右看。如果第i个人向左看,当且仅当第i个人的身高h[i]>=h[j] ( j=1...i-1) 时,他能看到美女;如果第i个人向右看,当且仅当第i个人的身高h[i]>=h[j] (j=i+1..N)时,他能看见美女。已知N个人的身高,求最多有多少人能看到美女。
输入
先输入一个数T 表T组
每组数据: 第一行 N。N<=100 000
第二行 N个整数, 1<=h<=20000
输出
输出答案 换行。
样例输入
1
5
1 4 7 6 2
样例输出
5
来源
时间限制: 1000ms内存限制: 128000KB 64位整型: Java 类名:
上一题 提交 运行结果 统计 讨论版 下一题
类型:
没有
添加
题目描述
“排排站,赏美女……”
Fujun师兄在今年南京赛区人品爆发,怒摘银奖,心情倍好,现组织大家去海边站成一排看美女 ^.^
N个人站成一排。不巧,美女们只在队伍的最左边和最右边,你们可以向左看或者向右看。如果第i个人向左看,当且仅当第i个人的身高h[i]>=h[j] ( j=1...i-1) 时,他能看到美女;如果第i个人向右看,当且仅当第i个人的身高h[i]>=h[j] (j=i+1..N)时,他能看见美女。已知N个人的身高,求最多有多少人能看到美女。
输入
先输入一个数T 表T组
每组数据: 第一行 N。N<=100 000
第二行 N个整数, 1<=h<=20000
输出
输出答案 换行。
样例输入
1
5
1 4 7 6 2
样例输出
5
来源
NYOJ
题解:
先找到该排数的最大值,然后分别往左边和右边查看,记录下合格的。
#include<stdio.h>
int a[20001];
int main()
{
int n,N;
scanf("%d",&N);
while(N--)
{
int q,max=0;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&a[i]);
if(max<a[i])
{
q=i,max=a[i];
}
}
int sum=1;
for(int i=q-1; i>=0; i--)
{
int f=1;
for(int j=0; j<i; j++)
{
if(a[j]>a[i])
{
f=0;
break;
}
}
if(f) sum++;
}
for(int i=q+1; i<n; i++)
{
int f=1;
for(int j=n-1; j>i; j--)
{
if(a[j]>a[i])
{
f=0;
break;
}
}
if(f) sum++;
}
printf("%d\n",sum);
}
}