2026

시간 제한2초메모리 제한2048 MB

요약
글자가 적힌 칸들이 있는 보드에서 네 방향으로 미는 연산을 순서대로 적용한 뒤 최종 보드를 출력한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

Новая татарская игра <<2026>> ведется на прямоугольной клетчатой доске, состоящей из mm строк и nn столбцов. Доска разбита на m×nm \times n единичных клеток размером 1×11 \times 1. На некоторых клетках стоят квадратные фишки размером 1×11 \times 1, на каждой фишке написана одна из 2626 английских букв.

С фишками производятся qq операций. Каждая операция состоит в перемещении всех фишек до упора в одном из четырех направлений. Таким образом, последовательность операций задается строкой ss длины qq, состоящей из символов, соответствующих направлениям: <<L>> --- влево, <<R>> --- вправо, <<U>> --- вверх и <<D>> --- вниз.

Операция выполняется следующим образом: пока на доске есть хотя бы одна фишка, для которой соседняя с ней в заданном направлении клетка является свободной, эта фишка передвигается на эту соседнюю клетку.

Определите, как будет выглядеть доска после выполнения всех операций.

입력

Каждый тест состоит из нескольких наборов входных данных. В первой строке теста задано целое число tt --- количество наборов входных данных в тесте (1≤t≤200,0001 \le t \le 200\\,000). Далее следуют описания наборов входных данных. Каждый набор входных данных описывается следующим образом:

В первой строке набора заданы целые числа mm и nn --- размеры доски (1≤m,n≤1061 \le m, n \le 10^6, 1≤m×n≤1061 \le m\times n \le 10^6).

В следующих mm строках задано изначальное расположение фишек на доске.

В ii-й строке (1≤i≤m1 \le i \le m) находится строка a_i1a_i2…a_ina\_{i1}a\_{i2}\ldots a\_{in} длины nn, задающая ii-ю строку доски. Каждый символ a_ija\_{ij} является либо строчной буквой английского алфавита от <<a>> до <<z>>, либо точкой <<.>>. Если a_ij=a\_{ij}=<<.>>, то клетка в ii-й строке и jj-м столбце является пустой, иначе в ней находится фишка, на которой написана буква a_ija\_{ij}.

В последней строке заданы qq символов s_1s_2…s_qs\_1s\_2\ldots s\_q без пробелов, задающие последовательность операций (1≤q≤1061 \le q \le 10^6). Каждый символ s_is\_i является одним из символов <<L>>, <<R>>, <<U>> или <<D>>.

Сумма значений m×nm \times n по всем наборам входных данных не превышает 2⋅1062\cdot 10^6. Сумма значений qq по всем наборам входных данных не превышает 2⋅1062\cdot 10^6.

출력

Для каждого набора входных данных выведите итоговое расположение фишек на доске после выполнения всех операций в том же формате, что и во входных данных.

힌트

В первом наборе входных данных из примера доска изначально выглядит так:

Первая операция сдвигает все фишки влево, так как s_1=s\_1=<<L>>. После ее выполнения доска будет выглядеть следующим образом:

Вторая операция сдвигает все фишки вправо, так как s_2=s\_2=<<R>>. После ее выполнения доска будет выглядеть следующим образом:

Третья и последняя операция сдвигает все фишки наверх, так как s_3=s\_3=<<U>>. После ее выполнения доска будет выглядеть следующим образом:

예제1

  1. 예제 1

    입력
    4
    4 4
    .a.b
    ..e.
    ....
    .cd.
    LRU
    1 1
    .
    UULLRRDD
    1 6
    .a.aa.
    LLURDDD
    5 7
    .ba.b..
    ac..c.d
    e......
    ....da.
    d.eae..
    DLDDRULRRR
    
    예상 출력
    ..ab
    ..ce
    ...d
    ....
    .
    ...aaa
    dceebab
    ...aeac
    .....ad
    ......d
    .......