BZOJ 2456: mode 水题

2456: mode

Time Limit: 1 Sec  

Memory Limit: 256 MB

题目连接

http://www.lydsy.com/JudgeOnline/problem.php?id=2456

Description

第1行一个正整数n。
第2行n个正整数用空格隔开

Input

   一行一个正整数表示那个众数

Output

表示为了聚会走的路程和最小为多少.

Sample Input

5
3 2 3 1 3

Sample Output

3

HINT

 100%的数据,n<=500000,数列中每个数<=maxlongint。

题意

 

题解:

因为保证出现最多的数一定是的大于n/2的,那么我们就可以直接利用抵消来搞定就好了

注意不要using namespace std,加了这个就会MLE……

代码:

#include<stdio.h>


int main()
{
    int n,ans1,ans2;
    scanf("%d%d",&n,&ans1);
    ans2=1;
    for(int i=1;i<n;i++)
    {
        int x;
        scanf("%d",&x);
        if(ans2==0)
            ans2=1,ans1=x;
        else if(ans1==x)
            ans2++;
        else
            ans2--;
    }
    printf("%d\n",ans1);
}

 

posted @ 2015-09-07 16:40  qscqesze  阅读(241)  评论(0编辑  收藏  举报