代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
char str[10000600];
int main()
{
int n,k,a,b;
char aa,bb;
int flag;
while(~scanf("%d%d%d%d",&n,&k,&a,&b))
{
aa='G'; bb='B'; //a cun xiao
if(a>b)
{
swap(a,b);
swap(aa,bb);
}
for(int i=0;i<n;i++)
str[i]=bb;
flag=0;
for(int i=k;i<n;i+=k+1)
{
if(a>0)
{
str[i]=aa;
a--;
}
else
{
flag=1;
}
}
if(!flag)
{
for(int i=0;i<n;i++)
{
if(a==0)
break;
if(str[i]==aa || (i>0 && str[i-1]==aa) || (i+1<n && str[i+1]==aa))
continue;
str[i]=aa;
a--;
}
for(int i=0;i<n;i++)
printf("%c",str[i]);
printf("\n");
}
else
printf("NO\n");
}
return 0;
}
本文介绍了一个有趣的算法问题,主人公Innokentiy喜欢喝茶,但不愿意连续喝太多相同的茶。文章探讨了如何通过算法确定泡茶的最佳顺序,使得他可以在不违反个人喜好的前提下享受每一杯茶。
975

被折叠的 条评论
为什么被折叠?



