CF2018B Speedbreaker

题目描述

有 $n$ 个城市排成一行,编号为 $1, 2, \ldots, n$,从左到右排列。 - 在第 $1$ 时刻,你可以征服恰好一个城市,称为起始城市。 - 在第 $2, 3, \ldots, n$ 时刻,你可以选择一个与已征服城市相邻的城市并征服它。 如果对于每个 $i$,你在不晚于 $a_i$ 的时刻征服城市 $i$,则你获胜。是否存在获胜策略,也取决于起始城市。问有多少个起始城市可以让你获胜?

输入格式

每个测试用例包含多组数据。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示城市的数量。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le n$),表示征服每个城市的最晚时刻。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示可以获胜的起始城市数量。

说明/提示

在第一个测试用例中,城市 $2$、$3$ 和 $4$ 是可以获胜的起始城市。 在第二个测试用例中,没有可以获胜的起始城市。 在第三个测试用例中,唯一可以获胜的起始城市是城市 $5$。 由 ChatGPT 4.1 翻译