B.Lucky
B. Lucky
时间限制(普通/Java) : 20000 MS/ 30000 MS 运行内存限制 : 16384 KByte
总提交 : 255 测试通过 : 56
总提交 : 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
总提交 : 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 阅读(137) 评论(0) 收藏 举报
浙公网安备 33010602011771号