<pre name="code" class="cpp">原问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4841。
注意格式。。。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int m,n,count,i,j;
char *p;
while(scanf("%d%d",&n,&m)!=EOF)
{
p=(char*)malloc(2*n*sizeof(char));
memset(p,'G',2*n*sizeof(char));//先都模拟成好人
count=0,j=0,i=-1;//count用来记录坏人的个数
while(count<n)
{
while(j<m)
{
i++;//i用来记录总体走的步数
i=i%(2*n);
if(p[i]=='G')
j++;
}
p[i]='B';
count++;
j=0;//由于j记录的是当前步数,所以每次又要归零
}
for(i=0;i<2*n;i++)
{ printf("%c",p[i]);
if((i+1)%50==0)
printf("\n");}
if((2*n)%50!=0)
printf("\n");
printf("\n");
free(p);
}
return 0;
}