B.Lucky

来源:互联网 发布:淘宝登录网络不给力 编辑:程序博客网 时间:2024/05/10 09:53


B. Lucky

时间限制(普通/Java) : 20000 MS/ 30000 MS          运行内存限制 : 16384 KByte
总提交 : 255            测试通过 : 56 

题目描述

    每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然这样,他就想找到那些不是lucky number。

输入

    多组输入数据
    第一行有n和m。n表示出现次数为n的是lucky number,m表示序列的长度。2<=n<=10,m<=3*10^6,m%n!=0。
    第二行为序列元素,每个元素都是正整数(int 型范围内)。

输出

    输出那个不是lucky number的数。题目保证非lucky number只有一个。

样例输入

2 5
1 1 2 2 3

样例输出

3


==大仙给的代码,自己又稍微改了改,无限膜拜大仙~一直TL

实现代码:

<span style="font-size:12px;">#include<iostream>#include<cstdlib>#include<cstdio>#include<algorithm>using namespace std;int n,m,cnt,ans,i,j;const int N=3*1000000;int a[N];int main(){    while(~scanf("%d%d",&n,&m))    {        for(i=0;i<m;i++) scanf("%d",&a[i]);        ans=-1;        sort(a,a+m);        for(i=0;i<m-1;++i){            j=i,cnt=1;            while(a[j]==a[j+1]){                cnt++;                j++;            }            if(cnt!=n){                ans=a[i];                break;            }            i=j;            if(ans==-1)  ans=a[m-1];        }      printf("%d\n",ans);    }}</span>

B. Lucky

时间限制(普通/Java) : 20000 MS/ 30000 MS          运行内存限制 : 16384 KByte
总提交 : 255            测试通过 : 56 

题目描述

    每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然这样,他就想找到那些不是lucky number。

输入

    多组输入数据
    第一行有n和m。n表示出现次数为n的是lucky number,m表示序列的长度。2<=n<=10,m<=3*10^6,m%n!=0。
    第二行为序列元素,每个元素都是正整数(int 型范围内)。

输出

    输出那个不是lucky number的数。题目保证非lucky number只有一个。

样例输入

2 5
1 1 2 2 3

样例输出

3

提示

 

题目来源

ACM爱好者协会

0 0
原创粉丝点击