만드는 중입니다

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

숫자탑과 쿼리

면접 대비

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

요약
a, d, x가 주어질 때 블록 번호 x가 놓인 층과 그 층에서 왼쪽부터 세었을 때의 위치를 구합니다.
난이도

보통10점 중 4점

유형
이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

의찬이는 숫자가 적힌 블록으로 탑을 쌓는 것을 즐긴다. 어느 날 선우는 의찬이가 쌓는 탑에 규칙이 있다는 것을 알게 되었다. 선우가 알아낸 규칙은 다음과 같다.

  • 의찬이가 쌓는 탑은 꼭대기가 11층이고, 11층에는 aa개의 블록이 있다.
  • 11층의 가장 왼쪽 블록에는 11이 적혀 있고, 블록에 적힌 숫자는 오른쪽으로 갈수록 11씩 증가한다.
  • i+1i+1층의 가장 왼쪽 블록에 적힌 숫자는 ii층의 가장 오른쪽 블록보다 11 크다.
  • i+1i+1층의 블록 수는 ii층의 블록 수보다 dd개 많다.

아래 그림은 a=1a=1, d=2d=2일 때 11층부터 44층까지 의찬이가 쌓은 탑이다.

의찬이는 숫자가 적힌 모든 블록의 위치를 외우고 있으며, 선우가 던지는 QQ개의 질문에 답하려고 한다. 질문은 한 가지 형식이다.

  • a d x: aa와 dd가 주어질 때, xx가 적힌 숫자 블록은 몇 층에 있고, 그 층의 가장 왼쪽에서 몇 번째 숫자인가?

위 그림을 예로 들어 보자. a=1a=1, d=2d=2, x=12x=12라면 의찬이는 (4,3)(4,3)이라고 답한다. 이는 1212가 적힌 블록이 44층의 33번째 숫자라는 뜻이다.

입력

첫째 줄에는 선우가 의찬이에게 하는 질문의 개수 QQ가 주어진다. (1≤Q≤500 000)(1\leq Q \leq 500\,000)

이후 QQ개의 줄에는 aa, dd, xx가 공백으로 구분되어 주어진다. (1≤a,d,x≤106)(1\leq a,d,x \leq 10^{6})

입력으로 주어지는 모든 값은 정수다.

출력

QQ개의 줄에 걸쳐 xx가 적힌 블록이 위치한 층과, 그 층의 가장 왼쪽을 기준으로 몇 번째 칸에 있는지 출력하시오.

예제1

  1. 예제 1

    입력
    2
    1 2 12
    1 2 17
    
    예상 출력
    4 3
    5 1