만드는 중입니다

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

달팽이와 쿼리

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

요약
홀수 크기의 시계 방향 달팽이 배열에서 주어진 행과 열의 값을 구하거나, 주어진 값의 행과 열을 찾는 질의에 답합니다.
난이도

보통10점 중 4점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

크기가 NN인 이차원 달팽이 배열은 다음 조건을 만족한다.

  • NN은 11보다 큰 홀수이다.
  • 배열의 크기는 N×NN \times N이다.
  • 11보다 크거나 같고 N2N^2보다 작거나 같은 자연수가 중복 없이 11, 22, …\dots, N2N^2 순서로 시계방향 소용돌이 모양을 따라 한 칸에 하나씩 들어있다.
  • 가장 왼쪽 윗 칸은 11이다.

왼쪽 그림은 N=3N=3인 경우, 오른쪽 그림은 N=5N=5인 경우의 달팽이 배열이다.

쿼리는 두 종류가 있다.

  • 1 nn xx yy: 크기가 nn인 달팽이 배열에서 xx행 yy열에 들어있는 수를 출력한다.
  • 2 nn zz: 크기가 nn인 달팽이 배열에서 zz가 들어있는 행 번호와 열 번호를 공백으로 구분해 출력한다.

행과 열의 번호는 11부터 시작한다.

QQ개의 쿼리가 주어진다. 쿼리를 순서대로 수행한다.

입력

첫째 줄에 쿼리의 개수 QQ가 주어진다. 둘째 줄부터 QQ개의 줄에 쿼리가 한 줄에 하나씩 주어진다.

출력

쿼리를 수행한 결과를 한 줄에 하나씩 순서대로 출력한다.

제한

  • 1≤Q≤100 0001 ≤ Q ≤ 100\,000
  • 3≤n≤99993 ≤ n ≤ 9999
  • 1≤x,y≤n1 ≤ x, y ≤ n
  • 1≤z≤n21 ≤ z ≤ n^2

예제1

  1. 예제 1

    입력
    10
    1 3 1 1
    1 3 2 1
    1 3 2 2
    2 3 9
    2 3 6
    1 5 2 2
    1 5 4 2
    2 5 4
    2 5 22
    1 5 3 2
    
    예상 출력
    1
    8
    9
    2 2
    3 2
    17
    23
    1 4
    4 3
    24