P17575 [JAG 2026 Summer Camp #3] Self-Destruct Sequence
题目描述
给定一个由 $N$ 个正整数组成的序列 $A=(A_1,A_2,\ldots,A_N)$。
对于每个 $k$($1\le k\le N$),求解以下问题:
> 令 $B$ 最初为序列 $(A_1,A_2,\ldots,A_k)$。在操作过程中的任意时刻,用 $|B|$ 表示 $B$ 当前的长度,用 $B_i$ 表示它的第 $i$ 个元素。
>
> 你可以执行任意次以下操作。
>
> - 选择一个下标 $i$($1\le i\le |B|$),满足 $i+B_i-1\le |B|$。从 $B$ 中删除元素 $B_i,B_{i+1},\ldots,B_{i+B_i-1}$。剩余元素按照原来的相对顺序组成新的序列 $B$。
>
> 判断是否可以将 $B$ 变为空序列。如果可以,求所需操作次数的最小值和最大值。
输入格式
输入包含一组测试数据,格式如下。
```text
N
A_1 A_2 ... A_N
```
第一行包含一个整数 $N$($1\le N\le5000$),表示序列的长度。
第二行包含 $N$ 个整数 $A_1,A_2,\ldots,A_N$($1\le A_i\le N$)。
输出格式
输出 $N$ 行。
对于每个 $k$($1\le k\le N$),第 $k$ 行输出 $B=(A_1,A_2,\ldots,A_k)$ 对应的答案。如果无法将 $B$ 变为空序列,输出 `-1`。否则,输出两个整数,分别表示将 $B$ 变为空序列所需操作次数的最小值和最大值。