“某国某地选举州长。该州一共有n个人,分别用1到n编号,其中m个人参与了投票。得票数过半(票数大于m div 2)的人将被选为州长
输入数据将告知这m个人分别将票投给了谁,请统计出谁将担任州长。
第一行两个数n和m。
第二行有m个数,这些数都是不超过n的正整数,表明这m个人的选择。
输出将被选为州长的人。如果没有人的票数过半,请输出-1。
”
for(int i=1;i<=n;i++){
if(mp[i]>(m/2)){
cout<<i;
return 0;
}
}
为什么这样会内存超出限制。
而这样,就ac了?
for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){
if(it->second>(m/2)){
printf("%d",it->first);
return 0;
}
}