sdnuoj1208玉玉抓兔子(模拟)

SDNUOJ1208.玉玉抓兔子

	Description
	 围绕着山顶有n个圆形排列的洞,玉玉要吃兔子,兔子说:“可以,但必须找到我,我就藏于这1..n个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但玉玉从早到晚找了m次,仍没有找到兔子.问:兔子究竟藏在那个洞里?请输出兔子可能存在的洞号。若兔子无处可藏,输出-1。
    
    
        Input
    
    
        两个数n(0<=n<=10^4),m(0<=m<=10^6)
    
    
        Output
    
    
        兔子可能存在的洞号,按字典序输出,两个洞之间用空格分隔
    
    
        Sample Input
    
    
        10 1000
    
    
        Sample Output


        2 4 7 9

一开始写的memset(b,1,sizeof(b));是错的,没有结果,后来改成了0.现在记住了!

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int b[10000+5];
int main()
{
   
    int n,m,f,i,j,k;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
   
        memset(b,0,sizeof(b));
        j=1;k=1;
        for(i=1; i<=m; i++)
        {
   
            if(i==1)
                b[i]=1;
            else
            {
   
                j++;
                if(k+j>n)
                {
   
                    k=(k+j-1)%n+1;
                    b[k]=1;
                }
                else
                {
   
                    k+=j;
                    b[k]=1;
                }
            }
        }
        f=0;
        for(i=1; i<=n; i++)
        {
   
            if(b[i]==0)
            {
   
                f=1;
                cout<<i;
                break;
            }
        }
        if(f)
        {
   
            for(i=i+1; i<=n; i++)
            {
   
                if(b[i]==0)
                    cout<<" "<<i;
            }
            cout<<'\n';
        }
        else
            cout<<"-1"<<'\n';
    }
    return 0;
}

全部评论

相关推荐

不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务