圓桌問題 hdu-4841 C++
阿新 • • 發佈:2021-01-25
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n,m;
int a[33000];
vector<int> v;
while (cin>>n>>m)
{
v.clear();//清空初始化
int temp = 0;
memset(a, 0, sizeof(a));//每次初始化
for (int i = 0; i < 2*n; i++)
{
v.push_back(i);
}
while (v.size()>n)
{
temp = (temp + m - 1) % v.size();
a[v[temp]] = 1;//標記壞人的位置
v.erase(v.begin() + temp);//移除壞人位置
}
for (int i = 0; i < 2*n; i++)
{
if (a[i])
cout << "B";
else cout << "G";
if ((i+1)%50==0)//50個字母為一行
{
cout << endl;
}
}
cout << endl<<endl;
}
return 0;
}