CF2259C 101
题目描述
一个长度为 $m$ 的数组 $b$ 的得分被定义为:$b$ 的一个子数组的最大长度,这个子数组的首尾元素都等于 $1$,且中间所有元素都等于 $0$。形式化地说,$b$ 的得分等于最大的正整数 $k$,满足存在下标 $i$,使得:
- $1 \leq i \leq m - k + 1$
- $b_i = b_{i+k-1} = 1$
- $b_{i+1} = b_{i+2} = \ldots = b_{i+k-2} = 0$
如果不存在满足条件的子数组,则 $b$ 的得分为 $0$。
给定一个数组 $a_1, a_2, \ldots, a_n$,其中每个元素为 $-1, 0$ 或 $1$。请将每个 $-1$ 替换为 $0$ 或 $1$,使替换后的 $a$ 的得分在所有合法替换方案中最大。
输入格式
第一行为一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的个数。
每个测试用例的第一行为一个整数 $n$($1 \leq n \leq 2 \times 10^5$),表示 $a$ 的长度。
每个测试用例的第二行为 $a_1, a_2, \ldots, a_n$($a_i \in \{-1, 0, 1\}$),表示数组 $a$。
保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个用空格分隔的整数,表示所有 $-1$ 被替换后的 $a$。如果有多种方案,输出任意一种即可。
说明/提示
在第一个测试用例中,可以将唯一的 $-1$ 替换为 $0$,使 $a = [1, 0, 0, 0, 0, 1]$。由于 $a$ 的首位和末位都为 $1$,其他元素全为 $0$,所以 $a$ 的得分为 $6$。
在第三个测试用例中,将两个 $-1$ 都替换为 $1$,得到 $a = [1, 0, 0, 1, 0]$,满足条件的最大子数组为第 $1$ 个到第 $4$ 个元素。
在第五个测试用例中,将唯一的 $-1$ 替换为 $1$,得到 $a = [1]$,整个数组即为满足条件的子数组。
由 ChatGPT 5 翻译