Logo 邂逅编程之美

UOJ

时间限制:1 s 空间限制:256 MB
Statistics

霜冻碎片(froze)

题目描述

你有很多如左图所示的碎片,你需要把它们经过翻转,旋转 $90$ 度的整数倍后填在 $n\times n $ 的网格图内,两块碎片不能共用一个格子,你需要使得填的数量尽量多,并输出方案。比如当 $n=3$ 时,最多填入两个碎片,如右图所示:

输入格式

一行一个整数 $n$ ,表示网格图大小。

输出格式

第一行一个整数表示最多能填充的个数。

随后 $n$ 行 $n$ 个数,第 $i$ 行第 $j$ 列的数 $a_{i,j}$ 表示当前格子被哪块碎片占据了,若$a_{i,j}=0$ 则表示是空格。

样例输入

3

样例输出

2
0 1 1
2 2 1
2 1 2

数据范围

对于 $20 \%$ 的数据, $n \le 9$ ;

对于另外 $20\%$ 的数据,$4 | n$ ;

对于另外 $20\%$ 的数据,$2|n$ ;

对于 $100\%$ 的数据,$3 \le n \le 2000$ 。