Red Versus Blue (Codeforces 1659A)
Tags: Greedy, implementation

Team Red and Team Blue competed in a competitive FPS. Their match was streamed around the world. They played a series of $$$n$$$ matches.In the end, it turned out Team Red won $$$r$$$ times and Team Blue won $$$b$$$ times. Team Blue was less skilled than Team Red, so $$$b$$$ was strictly less than $$$r$$$.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 $$$n$$$ where the $$$i$$$-th character denotes who won the $$$i$$$-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 $$$3$$$ 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 $$$t$$$ ($$$1 \le t \le 1000$$$)  — the number of test cases.Each test case has a single line containing three integers $$$n$$$, $$$r$$$, and $$$b$$$ ($$$3 \leq n \leq 100$$$; $$$1 \leq b < r \leq n$$$, $$$r+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.

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 $$$1$$$. 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 $$$2$$$, given by RR at the beginning. We cannot minimize the answer any further.

Sample Inputs:
3
7 4 3
6 5 1
19 13 6

6
3 2 1
10 6 4
11 6 5
10 9 1
10 8 2
11 9 2

Sample Outputs:
RBRBRBR
RRRBRR
RRBRRBRRBRRBRRBRRBR

RBR
RRBRBRBRBR
RBRBRBRBRBR
RRRRRBRRRR
RRRBRRRBRR
RRRBRRRBRRR

Solution (Python):
for l in [*open(0)][1:]:
    (n, r, b) = map(int, l.split())
    b += 1
    c = r // b * 'R' + 'B'
    print((r % b * ('R' + c) + n * c)[:n])

Solution (Python):
for n in [*open(0)][1:]:
    (n, r, b) = map(int, n.split())
    b += 1
    c = r // b * 'R' + 'B'
    print((('R' + c) * (r % b) + c * n)[:n])

Solution (Python):
from collections import *
from itertools import *
from bisect import *
from heapq import *
from math import ceil, prod, gcd, factorial
from time import time
mod = 10 ** 9 + 7
d = ((1, 0), (0, 1), (0, -1), (-1, 0))
alpha = 'abcdefghijklmnopqrstuvwxyz'

def helper(target):
    pass
for _ in range(int(input())):
    (n, r, b) = map(int, input().split())
    short = r // (b + 1)
    long = short + 1
    m = r % (b + 1)
    res = ('R' * long + 'B') * m + ('R' * short + 'B') * (b + 1 - m)
    print(res[:-1])