http://acm.hdu.edu.cn/showproblem.php?pid=1029
大意:
这是道计数的题目,只要找出比(n+1)/2 多或等于的数字后输出即可。
这题目也有个陷阱,题目设置的内存可能会比你定义的小,所以说要注意内存的范围(不知为什么我的ac了,感觉我的内存已经挺大的了,不过提交后显示只有4132K)。以后看题目要注意时间和内存的限制。
代码如下:
#include<stdio.h>
#include<string.h>
#define MAXN 999999
int a[MAXN];
int main()
{
int m, n, ans, tmp, flag, i;
while(scanf("%d", &n)!=EOF)
{
memset(a, 0, sizeof(a));
m = (n+1) / 2;
ans = 0;
for(i=1; i<=n; i++)
{
scanf("%d", &tmp);
a[tmp]++;
if(a[tmp] >= m )
{
ans = tmp;
flag = 1;
}
}
printf("%d\n", ans);
}
return 0;
}