题目描述
有N个人排成一排,假设他们的身高均为正整数,请找出其中符合以下条件的人:
排在他前面且比他高的人数与排在他后面且比他高的人数相等。
输入
第一行为一个正整数N,1<N<1000,表示有多少个人。
下面N行,每行一个正整数,表示从前往后每个人的身高,假设第 i 个人的身高为Hi(1≤Hi≤10000)。
输出
一行一个整数,表示满足这个条件的人数。
样例输入
4
1
2
1
3
样例输出
2
数据规模与约定
时间限制:1 s
内存限制:256 M
100% 的数据保证(1<N<1000),第 ii个人的身高为Hi(1≤Hi≤10000)。
AC代码
#include <bits/stdc++.h>
using namespace std;
#define MAX_N 1000
int main() {
int n, x[MAX_N + 5];
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x[i];
}
int num1 = 0, num2 = 0, flag = 0;
for (int i = 1; i <= n; i++) {
num1 = num2 = 0;
for (int j = i-1; j >= 1; j--) {
if (x[j] > x[i])
num1++;
}
for (int j = i + 1; j <= n; j++) {
if (x[j] > x[i]) num2++;
}
if (num1==num2) flag++;
}
cout << flag << endl ;
return 0;
}