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

Задача . E. Монотонная перенумерация


Дан массив \(a\), состоящий из \(n\) целых чисел. Назовем монотонной перенумерацией массива \(a\) такой массив \(b\), состоящий из \(n\) целых чисел, что выполняются все следующие условия:

  • \(b_1 = 0\);
  • для каждой пары индексов \(i\) и \(j\), такой, что \(1 \le i, j \le n\), если \(a_i = a_j\), то \(b_i = b_j\) (обратите внимание: если \(a_i \ne a_j\), все равно возможно \(b_i = b_j\));
  • для каждого индекса \(i \in [1, n - 1]\) либо \(b_i = b_{i + 1}\), либо \(b_i + 1 = b_{i + 1}\).

Например, если \(a = [1, 2, 1, 2, 3]\), то две монотонные перенумерации \(a\) — следующие: \(b = [0, 0, 0, 0, 0]\) и \(b = [0, 0, 0, 0, 1]\).

Посчитайте количество различных монотонных перенумераций \(a\). Ответ может быть большим, поэтому выведите его остаток от деления на \(998244353\).

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

В первой строке записано одно целое число \(n\) (\(2 \le n \le 2 \cdot 10^5\)) — количество элементов в \(a\).

Во второй строке записаны \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)).

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

Выведите одно целое число — количество монотонных перенумераций \(a\) по модулю \(998244353\).


Примеры
Входные данныеВыходные данные
1 5
1 2 1 2 3
2
2 2
100 1
2
3 4
1 3 3 7
4

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

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