【STL容器vector+模拟+输入输出格式】HDU-4841 圆桌问题
程序员文章站
2024-01-23 23:24:46
...
注解
1、用vector容器来模拟。
2、模拟的过程:先从0到2n-1编号,然后每次把第m个消除(erase方法)。再遍历一遍整个容器,根据容器中剩下的编号,确定每个人是好人还是坏人。
3、注意输入和输出格式。
代码
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
while(~scanf("%d %d", &n, &m)) {
vector<int> v;
for(int i=0; i<2*n; i++){
v.push_back(i);
}
int pos = 0;
while(v.size()>n){
pos = (pos+m-1) % v.size();
v.erase(v.begin()+pos);
}
pos = 0;
for(int i=0; i<2*n; i++){
if(i && !(i%50)){
cout<<endl;
}
if(pos<v.size() && v[pos]==i){
pos++;
cout<<"G";
}
else{
cout<<"B";
}
}
cout<<endl<<endl;
}
return 0;
}