A. Antimedian Deletion
A. Antimedian Deletion
时间限制:1秒
内存限制:256 MB
问题描述
给定一个长度为 n 的排列 p。你可以执行以下操作任意次:
选择一个长度为 3 的子数组,然后删除其中最小或最大的元素。
例如,对于排列 [2,4,5,3,1],你可以选择子数组 [2,4,5,3,1]。由于 5 = \max(2,4,5),你可以删除 5 得到数组 [2,4,3,1]。你也可以选择删除 2,因为 2 = \min(2,4,5)。
对于每个 i 从 1 到 n,求一个可得到的数组中包含元素 p_i 时的最小长度。注意,本题对于每个 i 是独立求解的。
* 一个长度为 n 的排列是由 n 个从 1 到 n 的不同整数按任意顺序组成的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(2 在数组中出现两次),[1,3,4] 也不是排列(n=3 但数组中有 4)。
† 数组 a 是数组 b 的子数组,如果 a 可以通过从 b 的开头删除若干(可能为零或全部)元素以及从结尾删除若干(可能为零或全部)元素得到。
输入格式
每个测试包含多个测试用例。第一行包含测试用例数 t(1 \le t \le 500)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1 \le n \le 100)——数组的长度。
每个测试用例的第二行包含 n 个整数 p_1, p_2, \dots, p_n(1 \le p_i \le n)。保证从 1 到 n 的每个元素恰好出现一次。
输出格式
对于每个测试用例,在新的一行中输出 n 个数:对于 i = 1, 2, \dots, n 的答案。
样例输入
2
1
1
3
2 1 3
样例输出
1
2 2 2
样例说明
在第一个样例中,数组大小仅为 1 < 3,因此无法执行任何操作。
在第二个样例中,对于 i = 2,我们可以选择子数组 [2,1,3],并删除最大的数字 3,得到数组 [2,1]。可以证明,包含 a_2 = 1 的任何可达数组的最小长度是 2。