만드는 중입니다

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

신중한 절단 (쉬움)

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

요약
주어진 정수 n에 대해 평면을 정확히 n개의 영역으로 나누는 직선들을 y = mx + b 형태로 출력합니다.
난이도

보통10점 중 5점

유형
수학, 그리디, 기하
정답자
아직 제출이 없습니다

문제

"Draw seven red lines, all of them strictly perpendicular to each other, some of them with green ink and some of them with transparent ink. Also, one of them should be in the form of a kitten." (The Expert)

걱정하지 마세요. 풀 문제는 훨씬 간단합니다. 2차원 평면 위에서 다룹니다.

직선 하나는 평면을 두 영역으로 나눕니다. 이런 직선 두 개로는 평행하면 세 영역, 서로 교차하면 네 영역으로 나눌 수 있습니다.

아래 그림은 직선 세 개로 평면을 각각 7, 6, 6개의 영역으로 나누는 배치입니다.

평면을 rr개의 영역으로 나누려고 합니다. 직선을 어떻게 그어야 하는지 알려 주세요.

정확히 rr개의 영역으로 나누고 아래 출력 형식을 따르는 직선 집합이라면 어떤 것을 출력해도 됩니다.

입력

입력의 첫 줄에는 테스트 케이스 개수 tt(t≤1000t \le 1000)가 주어집니다. 각 테스트 케이스 앞에는 빈 줄이 하나 있습니다.

각 테스트 케이스는 한 줄이며, 원하는 영역의 개수 nn(1≤n≤10001 \le n \le 1000)이 주어집니다.

출력

각 테스트 케이스의 출력은 그릴 직선의 개수 ℓ\ell을 적은 한 줄로 시작합니다. 이어서 평면 위의 직선을 하나씩 설명하는 ℓ\ell개의 줄을 출력합니다. 각 직선은 두 정수 mm과 bb를 공백으로 구분해 나타내며, 방정식 y=mx+by = mx + b를 뜻합니다. (수직선은 그을 수 없습니다. 당연히 그을 필요도 없습니다.)

한 테스트 케이스에 최대 1000개의 직선을 사용할 수 있습니다. 기울기 mm과 y절편 bb는 모두 −10000-10000 이상 1000010000 이하여야 합니다. 모든 유효한 테스트 케이스에 대해 해가 존재함이 보장됩니다.

힌트

n=2n = 2인 경우 직선 하나로 평면이 두 영역으로 나뉩니다. n=4n = 4인 경우 교차하는 두 직선이 평면을 네 사분면으로 나눕니다. 세 번째 경우에 제시된 해는 최적이 아니므로 어려운 서브태스크에서는 인정되지 않습니다.

예제1

  1. 예제 1

    입력
    3
    
    2
    
    4
    
    35
    
    예상 출력
    1
    0 5
    2
    2 0
    -2 4
    10
    2 0
    1 1
    0 1
    0 2
    0 3
    0 4
    0 5
    0 6
    -1 3
    -2 4