1874175_ac_0ms_24k.c

来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 51 行

C
51
字号
# include <stdio.h>

int main()
{
  int n, k, tmp, swap, mark[40];
  char t[40], ch[2];
  int i, no;
  long toss;

  while(scanf("%d",&n)==1&&n)
  {
   scanf("%d",&k);
   for(i = 0; i < 31; i++)
    mark[i]=0;
   tmp=1;no=0;toss=0;t[0]='Y';
   for(i = 1; i <= n; i++)
    {
     scanf("%s",ch);
     t[i]=ch[0];
    }

   while(1)
   {
    if(!mark[k]) {no++;mark[k]=1;}
    toss++;
    if(no==n){printf("Classmate %d got the ball last after %ld tosses.\n",k,toss); break;}
    
    if(t[k]=='L')
     {
      t[k]='R';
      swap=k;
      k=tmp-1;
      tmp=swap;
      if(k==tmp||k+n==tmp) k--;
      if(k<=0) k+=n;
     }
    else
    {
     t[k]='L';

     if(k>n)k%=n;
     swap=k;
     k=tmp+1;
     tmp=swap;
     if(k==tmp||k==tmp+n) k++;
     if(k>n)k%=n;
    }
   }
  }
  return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?