其实就是求出现的次数最多的数
因为输入有30位 我也不明白为毛用map就可以的 而且为毛可以scanf("%I64", &level)
明明int64最多18位 会溢出 但一到map就算level溢出了 只要数是一样的他照样行=-=
如 99999999999999999999999 99999999999999999999999 虽然溢出level为负数
但map神奇地找到 而且可以++ =-=
可能与map里面以红黑树储存有关吧 。。。。


#include <stdio.h> #include <string.h> #include <map> using std::map; int main() { int i, n, max; __int64 level; map<__int64, int> mapStudent; while(scanf("%d", &n)!=EOF) { max = 0; mapStudent.clear(); for(i=1; i<=n; i++) { scanf("%I64d", &level); mapStudent[level] ++ ; if( mapStudent[level] > max ) max = mapStudent[level]; } printf("%d\n", max); } return 0; }