Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:32 MB
统计

题目背景

Josip 是一个奇怪的画家。

题目描述

他想画一幅由$n \times n$个像素点组成的画。其中$n$是$2$的幂次(如$1,2,4,8,16,\dots$)。每个像素点将会被着色为黑色或者白色。Josip 目前已经知道他的理想画作了。

他将按照如下步骤作画:

  • 如果整幅画是一个像素点,那么他将依照自己的目标把这个像素点涂成黑色或者白色。

  • 否则,他会将正方形分为四个更小的正方形,然后:

  • 从中选择一个正方形全部涂成白色。

  • 再从剩下的三个正方形中选择一个全部涂成黑色。
  • 把剩下的两个正方形当成一幅新的画作,重复上述步骤。

很快他就发现把心目中的画作完完整整的画出来是不可能的。所以,他希望你来编写一个程序,使得画出的一幅画与他心目中的理想画作的差异尽量小。

两张画作之间的差异为颜色不同的像素点的数目。

输入输出格式

输入格式

输入第一行为一个整数$n$,表示画作的边长。

接下来的$n$行,每行$n$个为$0$或$1$的数字,表示理想状态当前像素点为黑色或者白色。

输出格式

输出第一行一个整数,表示最小的差异值。

接下来的$n$行,每行$n$个为$0$或$1$的数字,表示实际上当前像素的颜色。

注意:染色的方案可能有多种,输出任意一种即可,本题使用SPJ

输入输出样例

输入样例 #1

4
0001
0001
0011
1110

输出样例 #1

1
0001
0001
0011
1111

输入样例 #2

4
1111
1111
1111
1111

输出样例 #2

6
0011
0011
0111
1101

输入样例 #3

8
01010001
10100011
01010111
10101111
01010111
10100011
01010001
10100000

输出样例 #3

16
00000001
00000011
00000111
00001111
11110111
11110011
11110001
11110000

说明/提示

数据规模与约定

  • 对于$50\%$的数据,$n < 8$;
  • 对于$100\%$的数据,$1< =n< = 512$。