CF2211A Antimedian Deletion

题目描述

给定一个大小为 $n$ 的排列 $p$。你可以进行如下操作任意次: - 选择一个长度为 $3$ 的子数组。然后,删除该子数组中的最小值或最大值中的任意一个元素。 例如,排列 $[2,4,5,3,1]$,你可以选择子数组 $[2,4,5]$。由于 $5 = \max(2,4,5)$,你可以删除 $5$,得到数组 $[2,4,3,1]$。你也可以选择删除 $2$,因为 $2 = \min(2,4,5)$。 对于每个 $i$ 从 $1$ 到 $n$,求包含数字 $p_i$ 的所有可达数组的最小长度。注意,对于每个 $i$,要求独立地解决这个问题。 一个长度为 $n$ 的排列,是一个包含 $1$ 到 $n$ 各不相同的整数的数组,例如 $[2,3,1,5,4]$ 是一个排列,而 $[1,2,2]$ 不是排列($2$ 出现了两次),$[1,3,4]$ 也不是排列($n=3$ 却出现了 $4$)。 数组 $a$ 是数组 $b$ 的子数组,如果 $a$ 可以通过删除 $b$ 开头若干(可以为 $0$)以及结尾若干(可以为 $0$)元素得到。

输入格式

每个测试点包含多组用例。第一行为用例组数 $t$($1 \leq t \leq 500$)。每个用例的描述如下: 第一行为一个整数 $n$($1 \leq n \leq 100$)——数组的长度。 第二行为 $n$ 个整数 $p_1, p_2, \ldots, p_n$($1 \leq p_i \leq n$)。保证 $1$ 到 $n$ 的每个数各出现一次。

输出格式

对于每个测试用例,输出 $n$ 个数字,表示 $i=1,2,\ldots,n$ 时的答案。

说明/提示

在第一个样例中,因数组长度仅为 $1$,无法进行任何操作。 在第二个样例中,对于 $i=2$,可以选择子数组 $[2,1,3]$,删除最大值 $3$ 得到数组 $[2,1]$。可以证明,包含 $a_2=1$ 的任何可达数组的最小长度为 $2$。 由 ChatGPT 5 翻译