만드는 중입니다

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

Tris

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

요약
네 종류 조각의 개수가 주어질 때, 모든 조각을 사용해 하나의 단순 순환을 이루는 800x800 이하 격자를 출력합니다.
난이도

어려움10점 중 8점

유형
구현, 행렬, 기하
정답자
아직 제출이 없습니다

문제

여러 개의 도미노 모양 조각이 주어진다. 조각은 다음 네 종류가 있다.

조각은 네 종류뿐이며, 각 조각을 회전하거나 뒤집어서 사용할 수 있다. 모든 조각을 크기가 최대 800×800800 \times 800인 행렬에 배치하여 자기 자신과 닿지 않는 하나의 사이클을 만들어야 한다. 형식적으로 다음 조건을 만족해야 한다.

  • 모든 조각은 행렬 안에 완전히 들어가고, 격자에 맞춰 놓여야 한다.
  • 두 조각이 겹치면 안 된다.
  • 어떤 칸이 조각에 속하면, 그 칸의 상하좌우 이웃 네 칸 중 정확히 두 칸도 조각에 속해야 한다.
  • 점유된 모든 칸은 서로 연결되어 있다. 점유된 칸에서 인접한 점유 칸만 따라 이동해 다른 점유 칸으로 갈 수 있어야 한다.
  • 사이클의 내부는 4-연결된 하나의 영역이어야 한다.

입력

입력은 한 줄이며, 정수 네 개가 주어진다. 각 정수는 그림에 나온 순서대로 각 종류 조각의 개수이다. 각 수는 2 이상 100 이하이며, 올바른 답이 적어도 하나 존재함이 보장된다.

출력

첫 줄에 행의 수 NN과 열의 수 MM을 출력한다 (N,M≤800N, M \le 800). 다음 NN줄에는 행렬을 다음 형식으로 출력한다.

  • 행렬의 값은 0 이상 조각의 총 개수 이하의 정수여야 한다.
  • 같은 조각에 속한 칸은 같은 값을 가져야 한다.
  • 서로 다른 조각에 속한 칸은 서로 다른 값을 가져야 한다.
  • 어떤 조각에도 속하지 않은 칸은 0이어야 한다.

답이 여러 개이면 그중 아무거나 출력한다.

힌트

예제1

  1. 예제 1

    입력
    3 4 3 4
    
    예상 출력
    11 6
    0 1 2 4 4 4
    1 1 0 0 0 3
    8 0 0 0 3 3
    8 0 0 0 9 0
    8 0 0 0 9 9
    10 0 0 0 0 13
    10 0 0 0 0 11
    12 0 0 0 0 11
    12 0 0 0 0 14
    6 0 0 0 0 7
    6 5 5 5 7 7