小红开锁
题号:NC282878
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红来到了地下城的门口,发现门口有一个密码锁。
这个锁一共有n层,每层为一个正方形的图案。小红每次操作一次可以选择一层使其每个位置的元素按顺时针移动一个格子。
该图演示一个3层的锁,小红操作第二层时的变化。

该锁以中心为原点建立平面直角坐标系后,每个象限为一个区域,共分为4个区域,当且仅当某个区域内全部为'X'图案、且其余三个区域全部为'O'图案时,锁被解开。
小红想知道,这个锁需要操作最少多少次可以解开?

输入描述:

第一行输入一个正整数n,代表锁的层数。
接下来输入2n行,每行输入一个长度为2n的字符串,用来表示锁的初始图案。
1\leq n \leq 100
保证存在一个合法的开锁方式。

输出描述:

一个整数,代表小红需要操作的最少次数。
示例1

输入

复制
2
OXXX
OOOO
OXOO
OOOO

输出

复制
3

说明

对内层操作2次,对外层操作1次即可开锁。