#2856. 组合锁
组合锁
题目描述
Farmer John 的奶牛们正在逃离农场,造成了混乱。为了防止她们逃跑,他购买了一把崭新的组合锁,将他的奶牛们阻挡在牧场大门之外。
由于奶牛们非常聪明, Farmer John 想要确保她们不能通过简单地尝试各种密码组合来轻易打开组合锁。组合锁有三个圆形表盘,每个表盘上有数字 1 到 N ( 1 <=N <=100 )依次排列, 1 和 N 在圆形表盘上是相邻的。有两种密码组合能够打开组合锁,一个是由 Farmer John 设置的,另一个则是由制锁匠设置的主密码。组合锁能够接受微小的密码误差,这意味着,如果输入的三位密码中的每一位与解锁密码的相应位置之差不超过 2 ,那么该输入密码与解锁密码足够接近,同样能够打开组合锁。例如,如果 Farmer John 设置的密码为 (1, 2, 3) ,同时主密码为 (4, 5, 6) ,那么当输入密码为 (1, N, 5) 或者 (2, 4, 8) 时组合锁将会被打开(前者与 Farmer John 设置的密码足够接近,后者与主密码足够接近)。注意到,输入密码为 (1, 5, 6) 时将不能打开组合锁,因为它不与两个解锁密码足够接近。 给定 Farmer John 设置的密码和主密码,请求出有多少种输入密码的方式使得组合锁被打开。本题中的密码需要考虑顺序,这意味着密码 (1, 2, 3) 和 (3, 2, 1) 是不同的。
输入格式
第 1 行:整数 N 。
第 2 行:三个整数,用空格分隔,表示 Farmer John 设置的密码。
第 3 行:三个整数,用空格分隔,表示 主密码(可能与 Farmer John 设置的密码相同)。
输出格式
第 1 行:一个整数,表示能够打开组合锁的输入密码种数。
50
1 2 3
5 6 7
249
提示
每个密码表盘上的数字为 1到50 。Farmer John 设置的密码为 (1, 2, 3) ,主密码为 (5, 6, 7) 。