B.Lucky



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爱好者协会

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-04-15 13:30  Tob__yuhong  阅读(133)  评论(0编辑  收藏  举报

导航