A - Domino Disaster

 1. Problem

Alice has a grid with 22 rows and nn columns. She fully covers the grid using nn dominoes of size 1 \times 21×2 — Alice may place them vertically or horizontally, and each cell should be covered by exactly one domino.

Now, she decided to show one row of the grid to Bob. Help Bob and figure out what the other row of the grid looks like!

Input

The input consists of multiple test cases. The first line contains an integer tt (1 \leq t \leq 50001≤t≤5000) — the number of test cases. The description of the test cases follows.

The first line of each test case contains an integer nn (1 \leq n \leq 1001≤n≤100) — the width of the grid.

The second line of each test case contains a string ss consisting of nn characters, each of which is either L, R, U, or D, representing the left, right, top, or bottom half of a domino, respectively (see notes for better understanding). This string represents one of the rows of the grid.

Additional constraint on the input: each input corresponds to at least one valid tiling.

Output

For each test case, output one string — the other row of the grid, using the same format as the input string. If there are multiple answers, print any.

Example

input

4
1
U
2
LR
5
LRDLR
6
UUUUUU

output

D
LR
LRULR
DDDDDD

Note

In the first test case, Alice shows Bob the top row, the whole grid may look like:

In the second test case, Alice shows Bob the bottom row, the whole grid may look like:

In the third test case, Alice shows Bob the bottom row, the whole grid may look like:

In the fourth test case, Alice shows Bob the top row, the whole grid may look like:

2. Analysis

题目大意

有一个长度为2,宽为1的多米诺骨牌,

可以横着放也可以竖着放,

给出一行,求出另外一行

解题思路

LR的情况下面可以随意横着放,直接输出LR,
如果碰到 U则输出D
碰到D则输出U

故只需U和D转换一下即可。

3. Accepted Code

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int t;
    scanf("%d", &t);
    getchar();
    int n;
    char arr[107];
    int i;
    while(t--){
        scanf("%d", &n);
        getchar();
        for(i=0; i<n; i++){
            scanf("%c", &arr[i]);
            if(arr[i]=='U')
                printf("D");
            else if(arr[i]=='D')
                printf("U");
            else {
                printf("%c", arr[i]);
            }
        }
        printf("\n");
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值