만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

팩맨

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

요약
10x10 격자의 주어진 시작 칸에서 출발해 10000걸음 이내로 100개 칸을 모두 방문하는 경로를 출력한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 구현, 완전 탐색, 그리디
정답자
아직 제출이 없습니다

문제

팩맨은 1980년대에 개발된 미로 추격 비디오 게임이다. 플레이어는 캐릭터 “팩맨”을 조종해 미로에 있는 점을 먹으면서 적 캐릭터 “유령”을 피한다. 모든 캐릭터는 위, 아래, 왼쪽, 오른쪽 네 방향으로 움직일 수 있다. 다음 두 조건 중 하나가 만족되면 게임이 끝난다.

  1. 팩맨이 미로의 점을 모두 먹는다. 이 경우 플레이어가 이긴다.
  2. 유령이 팩맨을 잡는다. 이 경우 플레이어가 진다.

그림 1: 팩맨 게임 플레이 (이미지 출처: Wikipedia)

Adam은 최신 프로그래밍 도구로 게임을 만드는 방법을 배우고 있다. 실력을 기르기 위해 그는 팩맨 게임을 조금 바꿔서 재현하려고 한다. Adam의 게임에서는 플레이어가 조종하는 캐릭터가 “유령”이고, 적 캐릭터가 “팩맨”이다. 유령과 팩맨의 역할을 바꿨으므로 게임 종료 조건도 바꾼다.

  1. 팩맨이 미로의 점을 모두 먹는다. 이 경우 플레이어가 진다.
  2. 플레이어가 조종하는 유령이 팩맨을 잡는다. 이 경우 플레이어가 이긴다.

Adam은 첫 번째 완성 버전을 거의 개발했다. 그는 게임을 시험하려고 간단한 스테이지를 만든다. 스테이지의 미로는 10×10 격자를 바탕으로 한다. r행과 c열이 교차하는 칸을 (r, c)라고 표기한다. 이 문제에서 행과 열은 0부터 9까지 번호가 매겨진다. 각 격자 칸에는 점이 정확히 하나씩 있다. 격자의 바깥 경계는 벽이다. 어떤 캐릭터도 격자 밖으로 움직일 수 없다. 격자 안에는 벽이나 장애물이 없다. 모든 캐릭터는 한 칸에서 인접한 칸으로 자유롭게 움직일 수 있다. 두 격자 칸 (r1, c1)과 (r2, c2)가 인접하다는 것은 |r1 − r2| + |c1 − c2| = 1인 경우와 그 경우뿐이다.

Adam은 시험을 위해 팩맨의 움직임을 준비해야 한다. 그는 다양한 팩맨의 이동 경로가 필요하지만, 어떤 경로든 다음 조건을 만족해야 한다.

  • 팩맨이 그 경로를 따라가면 미로의 점을 모두 먹는다.
  • 팩맨은 최대 10000번 움직인다.

Adam은 (x, y) 칸에서 시작하는 경로를 생성하는 데 도움이 필요하다. 위의 모든 조건을 만족하고 (x, y) 칸에서 시작하는 팩맨의 경로를 생성하는 프로그램을 작성하시오.

입력

입력은 정확히 한 줄이며, 공백으로 구분된 두 정수 x와 y로 이루어진다. (x, y) 칸에서 시작하는 경로를 생성해야 한다.

출력

요청된 경로를 다음 형식으로 출력해야 한다. 경로는 m + 1개의 줄로 표현되며, m은 경로의 이동 횟수이다. i번째 줄에는 공백 하나로 구분된 두 정수 ri와 ci가 들어간다. 경로는 (r1, c1) 칸에서 시작하고, 1 < i ≤ m + 1인 i에 대해 팩맨은 경로를 따라 i − 1번 움직인 뒤 (ri, ci) 칸에 있다.

답이 여러 개라면 아무거나 출력해도 된다.

제한

  • m ≤ 10000
  • 모든 i ∈ {1, 2, . . . , m + 1}에 대해 x, y, ri, ci ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}이다.
  • 모든 i ∈ {1, 2, . . . , m}에 대해 칸 (ri, ci)와 (ri+1, ci+1)은 서로 인접하다.
  • {(r1, c1)} ∪ {(r2, c2)} ∪ · · · ∪ {(rm+1, cm+1)} = {(r, c) : r ∈ {0, 1, . . . , 9}, c ∈ {0, 1, . . . , 9}}

예제1

  1. 예제 1

    입력
    0 0
    
    예상 출력
    0 0
    0 1
    0 2
    0 3
    0 4
    0 5
    0 6
    0 7
    0 8
    0 9
    1 9
    1 8
    1 7
    1 6
    1 5
    1 4
    1 3
    1 2
    1 1
    1 0
    2 0
    2 1
    2 2
    2 3
    2 4
    2 5
    2 6
    2 7
    2 8
    2 9
    3 9
    3 8
    3 7
    3 6
    3 5
    3 4
    3 3
    3 2
    3 1
    3 0
    4 0
    4 1
    4 2
    4 3
    4 4
    4 5
    4 6
    4 7
    4 8
    4 9
    5 9
    5 8
    5 7
    5 6
    5 5
    5 4
    5 3
    5 2
    5 1
    5 0
    6 0
    6 1
    6 2
    6 3
    6 4
    6 5
    6 6
    6 7
    6 8
    6 9
    7 9
    7 8
    7 7
    7 6
    7 5
    7 4
    7 3
    7 2
    7 1
    7 0
    8 0
    8 1
    8 2
    8 3
    8 4
    8 5
    8 6
    8 7
    8 8
    8 9
    9 9
    9 8
    9 7
    9 6
    9 5
    9 4
    9 3
    9 2
    9 1
    9 0