#L3994. 「CSP-S 2023」密码锁

「CSP-S 2023」密码锁

题目描述

小 Y 有一把五个拨圈的密码锁,每个拨圈上是从 0099 的数字,且每个拨圈是循环的(即 99 拨动一个位置可变成 0088)。

小 Y 的锁车方式是:从正确密码开始,随机转动密码锁仅一次,每次操作是以下两种之一:

  1. 以某个幅度仅转动一个拨圈;
  2. 同时转动两个相邻的拨圈,且两个拨圈转动的幅度相同(例如可从 0  0  1  1  5\tt{0\;0\;1\;1\;5} 转成 1  1  1  1  5\tt{1\;1\;1\;1\;5},但不能转成 1  2  1  1  5\tt{1\;2\;1\;1\;5})。

小 Y 记下了锁车后的 nn 个状态,且这些状态都不是正确密码。需要计算:有多少种可能的正确密码,使得每个正确密码都能通过上述锁车方式产生所有 nn 个状态。

输入格式

从文件 lock.in 中读入数据。

输入的第一行包含一个正整数 nn,表示锁车后密码锁的状态数。

接下来 nn 行,每行包含五个整数,表示一个密码锁的状态。

输出格式

输出到文件 lock.out 中。

输出一行包含一个整数,表示满足条件的正确密码的种数。

样例 1

输入

11 00 00 11 11 55

输出

8181

样例 1 解释

共有 8181 种可能的正确密码:

  • 通过转动一个拨圈得到该状态的方案有 4545 种;
  • 通过转动两个相邻拨圈得到该状态的方案有 3636 种。

样例 2

见附件中的 lock2.in 与 lock2.ans。

数据范围与提示

对于所有测试数据,1n81 \leq n \leq 8

测试点编号 nn \leq 特殊性质
131 \sim 3 11
454 \sim 5 22
686 \sim 8 88 A
9109 \sim 10

其中,特殊性质 A 表示:所有正确密码都可以通过仅转动一个拨圈得到测试数据给出的 nn 个状态。