Жители Кечуа приветствуют вас на IOI 2025 особым подарком: двумя массивами $A$ и $B$, каждый длины $N$. Элементы в обоих массивах индексируются от $0$ до $N - 1$.
Чтобы убедиться, что вы бережно относитесь к их подарку, они зададут вам $Q$ вопросов, по одному за раз. Каждый вопрос состоит из двух индексов, $i$ и $j$, и звучит так: какова сумма $A[i]$ и $B[j]$?
Детали реализации
Первая процедура, которую вы должны реализовать:
void initialize(std::vector<int> A, std::vector<int> B)
- $A, B$: два массива длины $N$, подарок жителей Кечуа.
- Эта процедура вызывается ровно один раз для каждого теста, перед любыми вызовами
answer_question.
Вторая процедура, которую вы должны реализовать:
int answer_question(int i, int j)
- $i, j$: целые числа, описывающие вопрос.
- Эта процедура вызывается $Q$ раз.
- Эта процедура должна возвращать сумму $A[i]$ и $B[j]$.
Ограничения
- $1 \le N \le 200\,000$
- $0 \le A[k], B[k] \le 10^9$ для каждого $k$, такого что $0 \le k < N$.
- $1 \le Q \le 200\,000$
- $0 \le i, j < N$ в каждом вопросе.
Подзадачи
| Подзадача | Баллы | Дополнительные ограничения |
|---|---|---|
| 1 | 25 | Все элементы в массиве $A$ равны, и все элементы в массиве $B$ равны. |
| 2 | 35 | $N \le 1000$ |
| 3 | 40 | Нет дополнительных ограничений. |
Примеры
Входные данные 1
initialize([2, 1, 3], [0, 7, 8]) answer_question(0, 1) answer_question(2, 2)
Выходные данные 1
9 11
Пример проверяющей программы
Входные данные 1
3 2 1 3 0 7 8 2 0 1 2 2
Выходные данные 1
9 11