행렬 연산 (아름다운 행렬 만들기)

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

요약
모두 1인 상삼각행렬 U_N에서 행이나 열에 유리수를 더하는 연산을 최대 2N번 써서 모든 행과 열의 절댓값 합이 N/4 이하가 되게 만든다.
난이도

보통10점 중 7점

유형
수학, 그리디, 구현, 행렬
정답자
아직 제출이 없습니다

문제

N×NN \times N 행렬 U_N=(u_ij)U\_N = (u\_{ij})을 다음과 같이 정의합니다. u_iju\_{ij}는 ii행 jj열의 값입니다.

u_ij={1if i≤j 0if i>ju\_{ij} = \begin{cases} 1 & \text{if } i \le j\\\ 0 & \text{if } i > j \end{cases}

즉, U_NU\_N은 주대각선과 그 위쪽의 값들이 모두 11이고, 나머지 값들이 모두 00인 행렬입니다. 예를 들어

U_1=(1),,U_2=(11 01),,U_3=(111 011 001),,U_4=(1111 0111 0011 0001)U\_1 = \begin{pmatrix} 1 \end{pmatrix},\\, U\_2 = \begin{pmatrix} 1 & 1\\\ 0 & 1 \end{pmatrix},\\, U\_3 = \begin{pmatrix} 1 & 1 & 1\\\ 0 & 1 & 1\\\ 0 & 0 & 1 \end{pmatrix},\\, U\_4 = \begin{pmatrix} 1 & 1 & 1 & 1\\\ 0 & 1 & 1 & 1\\\ 0 & 0 & 1 & 1\\\ 0 & 0 & 0 & 1 \end{pmatrix}

입니다.

이 행렬에 다음과 같은 연산을 할 수 있습니다.

  • 11 rr pp qq: 정수 rr, pp, qq를 정합니다. rr번째 행의 모든 원소에 pq\frac{p}{q}를 더합니다. (1≤r≤N1 \le r \le N, −1012≤p≤1012-10^{12} \le p \le 10^{12}, 1≤q≤1061 \le q \le 10^6)
  • 22 cc pp qq: 정수 cc, pp, qq를 정합니다. cc번째 열의 모든 원소에 pq\frac{p}{q}를 더합니다. (1≤c≤N1 \le c \le N, −1012≤p≤1012-10^{12} \le p \le 10^{12}, 1≤q≤1061 \le q \le 10^6)

또한, 각 행과 각 열의 원소의 절댓값의 합이 모두 N4\frac{N}{4} 이하인 행렬을 아름다운 행렬이라고 합니다. 즉, NN행 NN열로 이루어진 22차원 행렬 A=(a_ij)A = (a\_{ij})가 1≤r≤N1 \le r \le N, 1≤c≤N1 \le c \le N인 모든 rr, cc에 대해 ∑_j=1N∣a_rj∣≤N4,∑_i=1N∣a_ic∣≤N4\sum\_{j=1}^{N} \left|a\_{rj}\right| \le \frac{N}{4},\quad \sum\_{i=1}^{N} \left|a\_{ic}\right| \le \frac{N}{4} 를 만족하면 행렬 AA를 아름다운 행렬이라고 합니다.

당신은 U_NU\_N으로 초기화되어 있는 행렬에 연산을 최대 2N2N번 진행하여 아름다운 행렬로 만들려고 합니다. 그 방법을 하나 찾아서 출력하세요.

입력

첫 번째 줄에 행렬의 크기를 나타내는 정수 NN이 주어집니다. (1≤N≤4001 \le N \le 400)

출력

첫 번째 줄에 연산 횟수 QQ를 출력하세요. 0≤Q≤2N0 \le Q \le 2N이어야 합니다.

다음 QQ개의 줄의 각 줄에 필요한 연산을 의미하는 네 정수를 공백으로 구분하여 출력하세요. 각 연산은 다음 중 하나여야 합니다.

  • 11 rr pp qq (1≤r≤N1 \le r \le N, −1012≤p≤1012-10^{12} \le p \le 10^{12}, 1≤q≤1061 \le q \le 10^6)
  • 22 cc pp qq (1≤c≤N1 \le c \le N, −1012≤p≤1012-10^{12} \le p \le 10^{12}, 1≤q≤1061 \le q \le 10^6)

U_NU\_N으로 초기화된 행렬에 모든 연산을 순서대로 실행한 후의 행렬은 아름다운 행렬이 되어야 합니다.

예제2

  1. 예제 1

    입력
    1
    
    예상 출력
    2
    1 1 -7 6
    2 1 1 6
    
  2. 예제 2

    입력
    2
    
    예상 출력
    2
    1 1 -1 2
    2 2 -1 2