QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 4096 MB Total points: 100 Difficulty: [show]

#13648. Zapytania A + B

الإحصائيات

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]).

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.