1. 程式人生 > >HZOI 2016 活動投票

HZOI 2016 活動投票

stdin div 一次 default amp ++ 描述 def scan

[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;

【來源】

2m神題

HZOI 2016

題目已經給出這個人是票數過半的

那麽最分散的排列情況為n/2+1並且隔一個投票一次如 1 2 1 2 1 1

以此類推 那麽這個人一定 連續投票最多的一個人

#include<cstdio>

int n,pos;

int main()
{
    freopen("hztp.in","r",stdin);
    freopen("hztp.out","w",stdout);
    scanf(
"%d",&n); int lenth_max=-1;int lenth_now=0;int who; int a; scanf("%d",&a); for(int i=2;i<=n;i++) { scanf("%d",&pos); if(pos==a) { lenth_now++; } else { if(lenth_now>lenth_max) { lenth_max
=lenth_now; who=a; } lenth_now=0; } a=pos; } printf("%d",who); return 0; }

HZOI 2016 活動投票