테이블 축구 경로

시간 제한1초메모리 제한128 MB

요약
공이 위아래로 튕기며 대각선으로 움직일 때 어느 플레이어와도 부딫히지 않도록 각 열의 플레이어를 상하로 옮기고, 공의 경로를 표에 그리는 문제입니다.
난이도

보통10점 중 6점

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

문제

두 친구 Mirko와 Slavko가 테이블 축구를 하고 있다. Mirko의 선수는 테이블 위에 없고, Slavko의 선수들은 세로 기둥에 붙어 있다.

공은 테이블의 왼쪽 가장자리에서 시작한다. Mirko가 공을 오른쪽 위 대각선 방향으로 차면, 공은 위쪽과 아래쪽 가장자리에서 반사되며 대각선 방향으로 계속 움직인다.

....................
......|..|....|.....
.........|..........
......|.......|.....
L.....|.............
..............|.....

공이 Slavko의 선수 중 하나와 부딪히면 Mirko는 득점하지 못한다. 공이 어떤 선수와도 부딪히지 않고 오른쪽 가장자리에 도달하면 Mirko가 득점한다.

Slavko는 자신이 Mirko보다 더 잘한다고 생각하므로, Mirko가 득점할 수 있도록 선수들을 배치해 주려고 한다.

Mirko가 득점할 수 있는 Slavko 선수 배치 하나를 찾고, 공이 지나가는 경로도 함께 그리는 프로그램을 작성하라.

Slavko는 각 세로 기둥의 선수들을 정수 칸만큼 위나 아래로 옮길 수 있다. 같은 기둥에 있는 선수들은 함께 움직이며, 모든 선수는 테이블 안에 남아 있어야 한다.

입력

첫째 줄에 테이블의 행 수와 열 수를 나타내는 두 정수 R과 C (2 <= R, C <= 100)가 주어진다.

다음 R개의 줄에는 테이블의 초기 배치를 나타내는 길이 C의 문자열이 주어진다.

공은 L, 선수는 |, 빈 칸은 .으로 표시된다. 가장 왼쪽 열에는 선수가 없다.

출력

선수 기둥을 옮긴 뒤의 최종 테이블 배치를, 공의 경로가 그려진 상태로 출력한다.

테스트 데이터에는 항상 하나 이상의 올바른 해가 존재한다. 해가 유일할 필요는 없다.

예제3

  1. 예제 1

    입력
    6 19
    .............|.....
    .|....|...|..|.....
    .|........|........
    L.....|...|........
    ......|......|.....
    ...................
    
    예상 출력
    .|.L......|..L.....
    .|L.L.....|.L|L....
    .L...L|...|L.|.L...
    L.....L...L.....L..
    ......|L.L.......L.
    ......|.L....|....L
    
  2. 예제 2

    입력
    3 8
    .||.....
    L|.|.|..
    ..||.|..
    
    예상 출력
    .L||.L..
    L|L|L|L.
    .||L.|.L
    
  3. 예제 3

    입력
    5 9
    L........
    .||||||||
    .........
    .||||||||
    .........
    
    예상 출력
    L|..|..|L
    .L|...|L.
    .|L|||L||
    ..|L.L|..
    ...|L|..|