每个学生都希望成为最终被留下的那位。 请编程计算一下,在第一次排号的时候排到第几位才能成为最终被留下的人。已知学生个数(<=50)。
输入样例:
50 5
结尾无空行
输出样例:
19
结尾无空行
#include<stdio.h>
int main()
{
int n,y;
scanf("%d %d",&n,&y);
int a[n],m=n,i;
for(i=0;i<n;i++)
a[i]=i+1;
for(int l=0;l<m-3;l++)
{
for(i=0;i<m;i++){
if(a[i]==y){
for(int k=0;k<m;k++){
if(a[k]>a[i])
a[k]=a[k]-a[i];
else if(a[k]<a[i])
a[k]=a[k]+n-a[i];
}
n--;
a[i]=-1000000;
break;
}
}
}
if(m==1)
printf("%d\n",m);
else{
for(i=0;i<m;i++){
if(a[i]==2){
printf("%d\n",i+1);
}
}
}return 0;
}