盒移位

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

在一个 n×nn \times n 的正方形箱子中,每个位置可能存在一个物块(用数字 191-9 表示其颜色)或者是空的(用 00 表示)。

我们可以对整个箱子进行顺时针旋转 9090 度的操作。旋转结束后,所有物块会因为重力作用而垂直向下坠落,直到它们落到箱子底部或被其他物块支撑住为止。

从给定的初始状态开始,不断重复 “旋转 -> 下落” 的过程,计算至少需要多少次这样的完整操作,箱子才能恢复到最初的状态。或者输出 NO 表示不可能。

输入格式

每个测试文件仅有一组测试数据。

第一行一个整数 nn (1n50)(1≤n≤50) 表示正方形箱子大小。

接下来 nn 行每行 nn 个数 ai,j(0ai,j9)a_{i,j} (0≤a_{i,j}≤9) 表示初始状态下第 ii 行第 jj 列的物块颜色( 00 表示空)。

在每个测试文件内,保证所有测试数据的物块数量从第一列到第 nn 列递减并已受到重力影响,且保证答案小于 1×1041×10^{4}

输出格式

如果可以回到原来的状态输出 YES 然后输出一个整数,表示旋转次数,否则输出 NO

3
0 0 0
1 0 0
2 3 0
YES
3
5
0 0 0 0 0
0 0 0 0 0
1 1 0 0 0
2 2 2 0 0
3 3 3 3 0
YES
16

样例解释

样例解释

浙江机电职业技术大学第十届程序设计竞赛(新生赛补题)

未参加
状态
已结束
规则
XCPC
题目
15
开始于
2025-12-1 13:30
结束于
2025-12-8 5:30
持续时间
160 小时
主持人
参赛人数
43