Codeforces Round #782 (Div. 2)A. Red Versus Blue
A. Red Versus Blue
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Team Red and Team Blue competed in a competitive FPS. Their match was streamed around the world. They played a series of nn matches.
In the end, it turned out Team Red won rr times and Team Blue won bb times. Team Blue was less skilled than Team Red, so bb was strictly less than rr.
You missed the stream since you overslept, but you think that the match must have been neck and neck since so many people watched it. So you imagine a string of length nn where the ii-th character denotes who won the ii-th match — it is R if Team Red won or B if Team Blue won. You imagine the string was such that the maximum number of times a team won in a row was as small as possible. For example, in the series of matches RBBRRRB, Team Red won 33 times in a row, which is the maximum.
You must find a string satisfying the above conditions. If there are multiple answers, print any.
Input
The first line contains a single integer tt (1≤t≤10001≤t≤1000) — the number of test cases.
Each test case has a single line containing three integers nn, rr, and bb (3≤n≤1003≤n≤100; 1≤b<r≤n1≤b<r≤n, r+b=nr+b=n).
Output
For each test case, output a single line containing a string satisfying the given conditions. If there are multiple answers, print any.
Examples
input
Copy
3 7 4 3 6 5 1 19 13 6
output
Copy
RBRBRBR RRRBRR RRBRRBRRBRRBRRBRRBR
input
Copy
6 3 2 1 10 6 4 11 6 5 10 9 1 10 8 2 11 9 2
output
Copy
RBR RRBRBRBRBR RBRBRBRBRBR RRRRRBRRRR RRRBRRRBRR RRRBRRRBRRR
Note
The first test case of the first example gives the optimal answer for the example in the statement. The maximum number of times a team wins in a row in RBRBRBR is 11. We cannot minimize it any further.
The answer for the second test case of the second example is RRBRBRBRBR. The maximum number of times a team wins in a row is 22, given by RR at the beginning. We cannot minimize the answer any further.
类型:贪心,数学
相当于r个数据分b+1组
1.能均匀分组直接输出
2.不能均匀分组时适用贪心,处理最后一个数组给前面的数组分配数据
代码如下:
#include<bits/stdc++.h>
using namespace std;
int arr[1005];
int main()
{
int N;
cin>>N;
int n,r,b;
while(N--)
{
cin>>n>>r>>b;
int yus=r%(b+1);
int zhc=r/(b+1);
int ges11=(r-yus)/(b+1);
int ges12=r-b*ges11;
if(yus==0)//恰好平均分组的情况
{
for(int i=0;i<b;i++)
{
for(int i=0;i<ges11;i++)
{
cout<<"R";
}
cout<<"B";
}
for(int i=0;i<ges11;i++)
{
cout<<"R";
}
}
else
{
for(int i=1;i<=b;i++)//为前b组赋初始值
arr[i]=ges11;
arr[b+1]=ges12;//对最后一组赋值
int NOTE=0;
while(1)
{
for(int i=1;i<=b;i++)
{
if(arr[i]>=arr[b+1])
{
NOTE=1;
break;
}
arr[i]++;
arr[b+1]--;
}
if(NOTE)
break;
}
for(int i=1;i<=b;i++)
{
for(int j=1;j<=arr[i];j++)
cout<<"R";
cout<<"B";
}
for(int i=1;i<=arr[b+1];i++)
cout<<"R";
}
cout<<endl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具