游客 Signup | Login
中文 | En

2646 - 拉手游戏

N个小朋友手拉手站成一个圆圈,从第一个小朋友开始循环报数,报到M的那个小朋友退到圈外,然后他的下一位重新报"1"。这样继续下去,直到最后只剩下一个小朋友,他原来站在什么位置上呢?

Input

仅一行,有两个数N和M,其中N表示小朋友的人数,M表示报到数。1<N<1000,M<=N

Output

仅一个数,留下的小朋友的编号。

Examples

Input

8 3

Output

7

Solution C++

#include<bits/stdc++.h>
using namespace std;
int main()
{
	
	int n,m,a[1005];
	cin>>n>>m;
	int ans=0,sum=0;
	for(int i=1;i<=n;i++)
		a[i]=i;
	for(int i=1;   ;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[j]!=0)
			{
				ans++;
				if(ans==m)
				{
				a[j]=0;sum++;
				ans=0;
				}
			}
			if(sum==(n-1))
			{
				for(int k=1;k<=n;k++)
				{
					if(a[k]!=0)
					{cout<<k; return 0;}
				}
			
			}
	
			
		}
	}
	
	
	
	
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题