Codeforces Round 895 (Div. 3) |
---|
Закончено |
Вам дан массив целых чисел $$$a_1, a_2, \ldots, a_n$$$, а также бинарная строка$$$^{\dagger}$$$ $$$s$$$, состоящая из $$$n$$$ символов
Августин — большой фанат структур данных. Поэтому он попросил вас реализовать структуру данных, способную ответить на $$$q$$$ запросов. Запросы бывают двух типов:
Пожалуйста, помогите Августину ответить на все запросы!
Например, если $$$n = 4$$$, $$$a = [1, 2, 3, 6]$$$, $$$s = \texttt{1001}$$$, рассмотрим серию запросов:
$$$^{\dagger}$$$ Бинарная строка — это строка, содержащая только символы $$$\texttt{0}$$$ или $$$\texttt{1}$$$.
Первая строка входных данных содержит целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте.
Далее следуют описания наборов входных данных.
Первая строка описания каждого набора входных данных содержит целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — длина массива.
Вторая строка набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$).
Третья строка набора входных данных содержит бинарную строку $$$s$$$ длины $$$n$$$.
Четвёртая строка набора входных данных содержит целое число $$$q$$$ ($$$1 \le q \le 10^5$$$) — количество запросов.
Последующие $$$q$$$ строк набора входных данных описывают запросы. Первое число каждого запроса, $$$tp \in \{1, 2\}$$$ характеризует тип запроса: если $$$tp = 1$$$, далее следует $$$2$$$ целых числа $$$1 \le l \le r \le n$$$, означающее, что нужно выполнить операцию типа $$$1$$$ с параметрами $$$l, r$$$, если $$$tp = 2$$$, далее следует целое число $$$g \in \{0, 1\}$$$, означающее, что нужно выполнить операцию типа $$$2$$$ с параметром $$$g$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам не превышает $$$10^5$$$, а также сумма $$$q$$$ по всем наборам не превышает $$$10^5$$$.
Для каждого набора входных данных, и для каждого запроса типа $$$2$$$ в нём, выведите ответ на соответствующий запрос.
551 2 3 4 50100072 02 11 2 42 02 11 1 32 1612 12 14 14 5 500100132 11 2 42 147 7 7 777111132 01 2 32 021000000000 9961791791112 151 42 20 47 70001151 3 41 1 11 3 41 2 42 0
3 2 6 7 7 11 7 0 0 16430827 47
Разберём первый набор входных данных примера:
Название |
---|