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

Задача . C1. Хорошие подмассивы (простая версия)


Это простая версия этой задачи. В этой версии нет запросов. Однако обратите внимание, что в этой версии в каждом тесте может быть несколько наборов входных данных. Вы можете делать взломы только если обе версии задачи решены.

Массив \(b\) длины \(m\) является хорошим, если \(i\)-й элемент больше либо равен \(i\) для всех \(i\). Другими словами, \(b\) хороший, если и только если \(b_i \geq i\) для всех \(i\) (\(1 \leq i \leq m\)).

Вам дан массив \(a\), состоящий из \(n\) положительных целых чисел. Найдите количество пар индексов \((l, r)\), где \(1 \le l \le r \le n\), таких, что массив \([a_l, a_{l+1}, \ldots, a_r]\) хороший.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \leq t \leq 2 \cdot 10^5\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число \(n\) (\(1 \leq n \leq 2 \cdot 10^5\)) — длину массива \(a\).

Вторая строка каждого набора содержит \(n\) целых чисел \(a_1,a_2,\ldots,a_n\) (\(1 \leq a_i \leq n\)) — массив \(a\).

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

Для каждого набора входных данных выведите количество подходящих пар индексов.

Примечание

В первом примере все подмассивы \(a\) являются хорошими, поэтому все пары индексов подходят.

Во втором примере пары \((1, 1)\), \((2, 2)\) и \((3, 3)\) подходят. Однако, например, при \((l, r) = (1, 2)\), массив \(b=[1,1]\) не является хорошим, потому что \(b_2 < 2\).


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

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

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