Logo
(追記) (追記ここまで)

33712번 - 블록 굴리기

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB109463741.573%

문제

민규는 요즘 유행하는 퍼즐 게임, <블록 굴리기>의 레벨 제작 기능을 사용해 보고 있다.

이 게임은 2ドル\times 1\times 1$ 크기의 직육면체 블록을 굴려서 특정한 목표 지점에 도달하도록 하는 게임이다. 구체적으로 아래와 같은 규칙을 갖고 있다.

  • 블록과 이동방식: 2ドル\times 1\times 1$ 크기의 블록에 대해, 블록의 여섯 면 중 크기가 1ドル\times 1$인 면이 바닥과 맞닿으면 세워진 상태, 2ドル\times 1$인 면이 바닥과 맞닿으면 눕혀진 상태라고 정의한다. 블록은 앞뒤좌우 네 방향으로 굴릴 수 있다. 블록을 굴리면 굴린 방향의 옆면이 인접한 바닥과 맞닿는 방향으로 이동한다.
  • 맵과 타일: 맵은 격자형 평면으로 구성되며, 블록이 이동할 수 있는 일반 타일과 목표 타일로 이루어져 있다. 블록은 맵 내부에서만 이동이 가능하여 경계를 벗어나면 즉시 실패 처리된다.
  • 목표: 블록을 굴려 목표 타일에 정확히 세워진 상태로 도착하는 것이 목표이다.
  • 레벨 제작 제한사항: 목표 타일은 1개만 지정할 수 있고, 목표 타일을 포함한 모든 타일은 인접한 변을 통해 연결되어 있어야 한다. 또한 블록은 세워진 상태로 배치해야 하며 일반 타일 위에만 배치할 수 있다.

$K = 6$일 때 목표 지점인 주황색 타일에 대해 파란색 타일을 시작 지점으로 정할 수 있다.

민규는 맵을 제작하던 중 특정 타일에서는 목표 타일에 도달할 수 없음을 알게 되었다. 민규를 도와 주어진 맵에서 정해진 횟수 $K$만큼 이동하여 목표 지점의 타일에 도달할 수 있는 시작 지점의 개수를 구하시오.

입력

첫 번째 줄에 격자 평면의 가로, 세로 길이 $N,ドル $M$과 이동 횟수 $K$가 공백으로 구분되어 주어진다.

두 번째 줄부터 $N$개의 줄에 걸쳐 격자 평면의 상태가 공백으로 구분되어 주어진다. 0은 경계 바깥, 1은 일반 타일, 2는 목표 지점의 타일을 나타낸다.

출력

첫 번째 줄에 정확히 주어진 이동 횟수만큼 움직였을 때 목표 지점에 도달할 수 있는 시작 지점의 개수를 출력한다.

제한

  • 3ドル \le N, M \le 150$
  • 2ドル \le K \le 150$
  • 입력으로 주어지는 수는 모두 정수이다.

예제 입력 1

3 4 3
1 0 0 1
1 1 1 1
1 1 1 2

예제 출력 1

2

예제 1과 같은 위치의 주황색 타일이 목표 지점이라면 시작 지점으로 정할 수 있는 파란색 타일은 두 개이다.

예제 입력 2

3 7 9
0 0 0 1 1 1 1
0 0 1 1 1 1 1
1 1 1 2 1 1 1

예제 출력 2

15

모든 일반 타일에서 9ドル$번째 이동에 목표 타일에 정확히 세워진 상태로 도달할 수 있다. 이동 과정에서 목표 타일을 거쳐갈 수 있다.

힌트

출처

University > 전남대학교 > 2025 상반기 전남대학교 PIMM 알고리즘 파티 D번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /