초콜릿 놓기

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

요약
연계된 초콜릿 먹기 문제에서 당도가 최소인 모든 경로의 이동 횟수가 N^2 이상이 되도록 N 곱하기 N 입력 데이터를 구성해 출력한다.
난이도

어려움10점 중 9점

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

문제

이 문제는, 본 대회의 이전 문제 초콜릿 먹기와 연계되는 문제입니다. 이 문제를 풀기 전에 해당 문제의 지문을 읽고 오시는 것을 추천드립니다.

여러분들은 ’초콜릿 먹기’ 문제를 풀며, 다양한 문제 상황들을 생각하고 있다. 그리고 여러분은 초콜릿의 당도 배열 AA와, 형진이가 초콜릿을 먹는 양의 변화 배열 BB에 따라 정답인 최적 경로가 크게 달라질 수 있다는 사실을 알게 되었다.

NN행 NN열 격자에서, 형진이가 당도 수치를 최소로 할 수 있는 경로가 있다고 하자. 이때, 그러한 조건(즉, 당도 수치가 최소가 되는 조건)을 만족하는 모든 경로에 대해, 그 이동 횟수가 N2N^2 이상이 되도록 ’초콜릿 먹기’ 문제의 입력 데이터를 구성할 수 있을까?

형진이의 주장으로는, NN이 충분히 크다면 구성할 수 있다고 한다. 한번 그러한 입력 데이터를 구성해서 출력해 보자.

입력

첫째 줄에 정수 NN이 입력으로 주어진다. (20≤N≤10020\le N\le 100)

출력

첫째 줄에 격자의 크기를 나타내는 정수 NN을 출력한다. NN은 반드시 입력받은 값과 같아야 한다.

둘째 줄에 시작점의 정보를 나타내는 두 정수 r_1r\_1, c_1c\_1과, 도착점의 정보를 나타내는 두 정수 r_2r\_2, c_2c\_2를 공백을 두고 출력한다. (1≤r_1,c_1,r_2,c_2≤N1\le r\_1,c\_1,r\_2,c\_2\le N) 또한, 시작점과 도착점은 다르다.

다음 NN개의 줄에 걸쳐, 각 줄의 ii번째 줄에는 AA의 ii번째 행에 해당하는 수열 A_i,1,A_i,2,…,A_i,NA\_{i,1},A\_{i,2},\dots ,A\_{i,N}을 공백을 두고 출력한다. (0≤A_i,j≤1090\le A\_{i,j}\le 10^9)

다음 NN개의 줄에 걸쳐, 각 줄의 ii번째 줄에는 BB의 ii번째 행에 해당하는 수열 B_i,1,B_i,2,…,B_i,NB\_{i,1},B\_{i,2},\dots ,B\_{i,N}을 공백을 두고 출력한다. (1≤B_i,j≤1061\le B\_{i,j}\le 10^6)

예제1

  1. 예제 1

    입력
    5
    
    예상 출력
    5
    1 1 3 3
    0 0 0 0 0
    1 1 1 1 0
    0 0 0 1 0
    0 1 1 1 0
    0 0 0 0 0
    10000 1 10000 1 10000
    1 1 1 1 1
    10000 1 10000 1 10000
    1 1 1 1 1
    10000 1 10000 1 10000