2199. [HZOI 2016] 活动投票
★★ 输入文件:hztp.in
输出文件:hztp.out
简单对比
时间限制:0.5 s
内存限制:2 MB
【题目描述】
衡中活动很多,人也很多,一次活动有n个学生参与投票,现已知一名参赛选手票数超过半数,求其参赛号(参赛号随机)
【输入格式】
第一行一个整数n
第二行n个整数Ni 代表第i个学生所投选手的参赛号
【输出格式】
超过半数选手的参赛号
【样例输入】
10
5 1 2 5 5 2 3 5 5 5
【样例输出】
5
【提示】
100%的数据中:n ≤3000000,1 ≤ Ni ≤300000000;
【来源】
HZOI 2016
相同则加,不同则减
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<map> 5 using namespace std; 6 int n; 7 int maxn; 8 int num=1; 9 int p; 10 int main() 11 { 12 13 freopen("hztp.in","r",stdin); 14 freopen("hztp.out","w",stdout); 15 //ios::sync_with_stdio(false); 16 //scanf("%d",&n); 17 scanf("%d",&n); 18 for(int i=1;i<=n;i++) 19 { 20 scanf("%d",&p); 21 if(p!=maxn) 22 { 23 num--; 24 if(num<0) 25 { 26 maxn=p; 27 num=1; 28 } 29 } 30 else 31 num++; 32 } 33 cout<<maxn; 34 return 0; 35 }
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。