#P7285. 「EZEC-5」修改数组

    ID: 7778 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 显示难度入门 上传者: 标签>贪心Special Judge构造洛谷月赛

「EZEC-5」修改数组

题目描述

给定一个长度为 nn、元素由 00 或 11 组成的数组。

现在可以选择若干(可以为 0)个值为 00 的元素,将其修改为 11。

记:

  • xx 为数组中最长连续 11 子段的长度(规定,若所有数均为 00,则 xx 为 00);
  • yy 为修改的元素的个数。

求要怎么修改才能使 x−yx-y 最大,并构造一个方案(输出修改后的数组)。

输入格式

本题含有多组数据。

第一行一个整数 TT 表示数据组数。

接下来 2×T2\times T 行,每 22 行表示一组数据。

在一组数据中,第一行一个整数 nn,表示数组的长度;

第二行 nn 个整数(0 或 1),表示给定的数组。

输出格式

共 2×T2\times T 行,每 22 行表示一组数据。

在一组数据中,第一行输出一个整数表示 x−yx-y 的最大值;

第二行 nn 个整数(0 或 1)表示修改以后的数组。如有多个方案,任意输出一种即可。

1
1
1
1
1
2
3
1 0 1
5
0 1 0 1 0
2
1 1 1
2
0 1 1 1 1

提示

本题采用捆绑测试。

对于所有数据,保证 T≤10,1≤n≤105T\le10,1\le n\le 10^5,数组元素 ∈{0,1}\in \{0,1\}。

  • Subtask 1(70 points):保证 1≤n≤101\le n\le 10;
  • Subtask 2(30 points):无特殊限制。