HDU 1029

来源:互联网 发布:java static 多线程 编辑:程序博客网 时间:2024/05/19 01:29
#include<cstdio>#include<string>using namespace std;int main(){    int n,i;    int t;    int cnt;    int result;    while(scanf("%d",&n)!=EOF)    {        cnt=0;        for(i=0;i<n;i++)        {            scanf("%d",&t);                        if(cnt==0)                {                    cnt=1;                    result=t;                }            else                {                    if(t==result)cnt++;                    else cnt--;                }                                }        printf("%d\n",result);        }      return 0;  }  

 

#include <cstdio>#include<cstring>using namespace std;int sum[1000005];int main(){    int n,i,j,cou,res,t;    while(scanf("%d",&n)!=EOF)    {        cou=0;res=0;t=n;        memset(sum,0,sizeof(sum));        while(n--)        {            scanf("%d",&j);            sum[j]++;        }        for(i=0;i<1000000;i++)        {            if(sum[i]>cou)            {cou=sum[i];res=i;}        }        if(cou>=(t+1)/2) printf("%d\n",res);    }    return 0;}



 


两个不同思想的代码 但是都能ac  我用的是第二个代码 第一个代码总感觉不对

如果样例是

13

1 21 1 2  2 3 2 1 4 3 3 4

那么结果 分别是  试一下吧 嘿嘿