25시, 나이트 코포에서

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

요약
첫 행 전체의 지뢰 여부와 모든 칸에 대해 주변 8칸 중 지뢰가 없는 칸의 개수가 주어질 때, n×n 지뢰 배치를 복원한다.
난이도

보통10점 중 6점

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

문제

전국 최고의 ps 명문 학교인 경기과학고등학교에서는 학생들을 배려하여, 자정 이후에 진행되는 코드포스를 할 수 있도록 환경을 마련해 준다. 날고 기는 경곽의 ps강자들 중에서도 정점에 서 있는 요이사키 종경은 오늘의 코포 이전에 그가 좋아하는 애니메이션 중 하나인 "중2병이라도 ps가 하고 싶어!"를 보고자 한다. 그러나, 그를 능가하는 강자인 아사히나 기범은 그의 컴퓨터를 해킹하여 모든 신상을 털고 코드포스에 틀린 제출을 하여 그의 레이팅을 300300만큼 내려 버렸다! 극한의 분노에 사로잡힌 종경은 기범의 컴퓨터를 물리적으로 해킹하고자 한다.

기범의 컴퓨터를 해킹하기 위해서는 NP-Hard로 알려져 있는 지뢰 찾기를 완수해야 한다. 그러나, 종경은 자신의 마법 능력을 통해 모든 칸에 대해, 그 칸과 한 점 이상을 공유하는 칸 중 안전한 칸의 개수를 알아내었으며, 추가로 첫 행에 속한 모든 칸에 지뢰가 있는지의 여부를 알아내었다. 그러나 이 작업만으로도 종경은 지쳤기 때문에, 그는 당신에게 도움을 요청했다. 종경을 도와 지뢰 찾기를 해결해 주자!

입력

첫째 줄에 양의 정수 nn이 주어진다. 이후, 두 번째 줄에 nn개의 정수 a_1a\_1, ⋯\cdots, a_na\_n이 주어지는데, a_ia\_i가 11이라면 11행 ii열에 지뢰가 있는 것이고, 그렇지 않다면 11행 ii열에 지뢰가 없는 것이다.

이후, 33번째 줄부터 n+2n+2번째 줄까지 한 줄에 하나씩 nn개의 수가 주어지는데, i+2i+2번째 줄의 jj번째 수는 ii행 jj열의 칸 자체를 제외하고 하나 이상의 점을 공유하는 칸들 중 지뢰가 없는 칸의 개수이다. 조건에 맞는 지뢰의 배치가 존재하는 입력 데이터만 주어진다. 이때 조건에 맞는 지뢰의 배치가 하나뿐임을 증명할 수 있다.

출력

nn개의 줄에 한 줄에 하나씩 모두 nn개의 수를 출력한다. ii행 jj열의 수는 각각 ii행 jj열에 지뢰가 있다면 11, 그렇지 않다면 00이어야 한다.

제한

  • 4≤n≤10004 \le n \le 1000
  • nn을 33으로 나눈 나머지는 22가 아니다.

예제1

  1. 예제 1

    입력
    4
    1 0 1 1
    3 3 3 1
    3 4 4 2
    5 5 5 1
    2 2 3 1
    
    예상 출력
    1 0 1 1
    0 0 0 1
    1 0 1 0
    0 0 1 1