달력

면접 대비

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

요약
주어진 날짜를 한 달력의 연중 날짜로 바꾼 뒤 다른 달력에서 해당하는 월과 일을 찾습니다.
난이도

보통10점 중 4점

유형
누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

당신은 두 부족, 아르부잔족과 바나닛족 사이의 무역을 담당하고 있습니다. 문제는 두 부족이 서로 다른 달력을 사용한다는 점입니다.

아르부잔족의 달력은 nn개의 달로 이루어져 있으며, 각 달의 길이(일수)는 a1,a2,…,ana_1, a_2, \dots, a_n입니다. 바나닛족의 달력은 mm개의 달로 이루어져 있으며, 각 달의 길이는 b1,b2,…,bmb_1, b_2, \dots, b_m입니다.

두 달력에서 한 해의 총 일수는 서로 같습니다. 즉 a1+a2+⋯+an=b1+b2+⋯+bma_1 + a_2 + \dots + a_n = b_1 + b_2 + \dots + b_m입니다.

두 달력 사이에서 날짜를 변환하는 프로그램을 작성하세요.

입력

첫째 줄에는 두 정수 nn과 mm (1≤n,m≤1061 \le n, m \le 10^6)이 공백 하나로 구분되어 주어집니다. 각각 아르부잔족과 바나닛족 달력의 달 수입니다.

둘째 줄에는 아르부잔족 달력의 각 달 길이를 나타내는 정수 a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤1031 \le a_i \le 10^3)이 공백으로 구분되어 주어집니다. 셋째 줄에는 바나닛족 달력의 각 달 길이를 나타내는 정수 b1,b2,…,bmb_1, b_2, \dots, b_m (1≤bi≤1031 \le b_i \le 10^3)이 공백으로 구분되어 주어집니다.

넷째 줄에는 질의의 개수를 나타내는 정수 zz (1≤z≤1051 \le z \le 10^5)가 주어집니다.

이어지는 zz개의 줄에는 각각 하나의 질의가 주어집니다. 각 질의는 두 정수 did_i, mim_i와 하나의 문자 cic_i로 이루어지며 공백으로 구분됩니다. 각각 날짜의 일, 달, 그리고 변환 방향을 뜻합니다. cic_i가 문자 A이면 1≤mi≤n1 \le m_i \le n이고 1≤di≤ami1 \le d_i \le a_{m_i}이며, 이는 아르부잔족 달력의 날짜로서 바나닛족 달력의 날짜로 변환해야 합니다. cic_i가 문자 B이면 1≤mi≤m1 \le m_i \le m이고 1≤di≤bmi1 \le d_i \le b_{m_i}이며, 이는 바나닛족 달력의 날짜로서 아르부잔족 달력의 날짜로 변환해야 합니다.

출력

zz개의 줄을 출력합니다. ii번째 줄에는 ii번째 질의의 답을 대상 달력에서의 날짜인 두 정수 di′d^{\prime}_i, mi′m^{\prime}_i로 출력하며, 공백 하나로 구분합니다. di′d^{\prime}_i는 일, mi′m^{\prime}_i는 달을 나타냅니다.

예제2

  1. 예제 1

    입력
    3 6
    20 10 4
    10 10 6 4 2 2
    4
    11 1 A
    2 1 B
    2 6 B
    3 3 A
    
    예상 출력
    1 2
    2 1
    4 3
    1 6
    
  2. 예제 2

    입력
    1 1
    5
    5
    3
    1 1 A
    5 1 A
    3 1 B
    
    예상 출력
    1 1
    5 1
    3 1