题意:给定一个数组,如果该数组的平均数大于等于该数组的中位数时,输出“NO”,否则,输出“YES”。
解题思路:简单题,但是可能会有人疑惑aver的类型问题,在此说明下;正常情况下aver应该定义为double,但在此aver定义为int也可以,因为假设当中位数为3时,aver为int,且平均数为[3.0,3.9]之间时,aver=3,此时输出为“NO”,实际也应输出“NO”;当平均数在[2.0,2.9]时,aver = 2,此时输出“YES”,实际也应输出“YES”,故aver定义为int或double都可以。
Code:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
//freopen("input.txt","r",stdin);
int N,array[1050];
while(~scanf("%d",&N))
{
int sum = 0;
for(int i = 0; i < N; i++)
{
scanf("%d",&array[i]);
sum += array[i];
}
sort(array,array+N);
double aver = (double)sum/N;//
if(aver >= (double)array[(N-1)/2])
printf("NO\n");
else
printf("YES\n");
}
return 0;
}