Quechuas witają Cię na IOI 2025 specjalnym prezentem: dwiema tablicami $A$ oraz $B$, każda o długości $N$. Elementy w obu tablicach są indeksowane od $0$ do $N - 1$.
Aby upewnić się, że dobrze dbasz o ich prezent, zadadzą Ci $Q$ pytań, jedno po drugim. Każde pytanie składa się z dwóch indeksów, $i$ oraz $j$, i brzmi: Jaka jest suma $A[i]$ oraz $B[j]$?
Szczegóły implementacji
Pierwszą procedurą, którą musisz zaimplementować, jest:
void initialize(std::vector<int> A, std::vector<int> B)
- $A, B$: dwie tablice o długości $N$, prezent od Quechuas.
- Ta procedura jest wywoływana dokładnie raz dla każdego przypadku testowego, przed jakimkolwiek wywołaniem
answer_question.
Drugą procedurą, którą musisz zaimplementować, jest:
int answer_question(int i, int j)
- $i, j$: liczby całkowite opisujące pytanie.
- Ta procedura jest wywoływana $Q$ razy.
- Ta procedura powinna zwrócić sumę $A[i]$ oraz $B[j]$.
Ograniczenia
- $1 \le N \le 200\,000$
- $0 \le A[k], B[k] \le 10^9$ dla każdego $k$ takiego, że $0 \le k < N$.
- $1 \le Q \le 200\,000$
- $0 \le i, j < N$ w każdym pytaniu.
Podzadania
| Podzadanie | Punkty | Dodatkowe ograniczenia |
|---|---|---|
| 1 | 25 | Wszystkie elementy w tablicy $A$ są równe i wszystkie elementy w tablicy $B$ są równe. |
| 2 | 35 | $N \le 1000$ |
| 3 | 40 | Brak dodatkowych ograniczeń. |
Przykład
Rozważ następujące wywołanie:
initialize([2, 1, 3], [0, 7, 8])
W tym przypadku $N = 3$, a podarowane Ci tablice to $A = [2, 1, 3]$ oraz $B = [0, 7, 8]$.
Teraz rozważ następujące wywołanie:
answer_question(0, 1)
To wywołanie powinno zwrócić sumę $A[0] = 2$ oraz $B[1] = 7$, czyli $9$.
Rozważ następujące wywołanie:
answer_question(2, 2)
To wywołanie powinno zwrócić $A[2] + B[2] = 3 + 8 = 11$.
Przykład użycia (Sample Grader)
Format wejścia:
N A[0] A[1] ... A[N-1] B[0] B[1] ... B[N-1] Q i[0] j[0] i[1] j[1] ... i[Q-1] j[Q-1]
Tutaj $i[k]$ oraz $j[k]$ ($0 \le k < Q$) określają parametry dla każdego wywołania answer_question.
Format wyjścia:
S[0] S[1] ... S[Q-1]
Tutaj $S[k]$ ($0 \le k < Q$) to liczba całkowita zwrócona przez wywołanie answer_question(i[k], j[k]).