Олимпиадный тренинг

Задача . E. Холодное тепло


Вам дан массив из \(n\) целых чисел \(a_1, a_2, \ldots, a_n\).

Вам нужно выполнить \(q\) операций. В \(i\)-й операции у вас есть символ \(s_i\), который равен либо «<», либо «>», и число \(x_i\).

Вы создаете новый массив \(b\) такой, что \(b_j = -a_j\), если \(a_j s_i x_i\) и \(b_j = a_j\) в противном случае (то есть, если \(s_i\) равен «>», то все знаки в \(a_j > x_i\) поменяются). После выполнения всех этих замен значения чисел в массиве \(a\) меняются на значения в \(b\).

Вы хотите знать, как выглядит ваш массив после выполнения всех операций.

Входные данные

Первая строка содержит два целых числа \(n,q\) (\(1 \leq n,q \leq 10^5\)) — количество чисел и количество запросов.

Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(-10^5 \leq a_i \leq 10^5\)) — числа.

Каждая из следующих \(q\) строк содержит символ и число \(s_i, x_i\). (\(s_i \in \{<, >\}, -10^5 \leq x_i \leq 10^5\)) – запрос.

Выходные данные

Выведите \(n\) чисел \(c_1, c_2, \ldots, c_n\) — числа массива после выполнений всех операций.

Примечание

В первом примере массив изменяется следующим способом:

  • сначала: \([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]\)
  • \(> 2\): \([-5, -4, -3, -2, -1, 0, 1, 2, -3, -4, -5]\)
  • \(> -4\): \([-5, -4, 3, 2, 1, 0, -1, -2, 3, -4, -5]\)
  • \(< 5\): \([5, 4, -3, -2, -1, 0, 1, 2, -3, 4, 5]\)

Примеры
Входные данныеВыходные данные
1 11 3
-5 -4 -3 -2 -1 0 1 2 3 4 5
> 2
> -4
< 5
5 4 -3 -2 -1 0 1 2 -3 4 5
2 5 5
0 1 -2 -1 2
< -2
< -1
< 0
< 1
< 2
0 -1 2 -1 2

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя