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 翻译