luogu#P1949. [NOI2001] 聪明的打字员

[NOI2001] 聪明的打字员

题目描述

阿兰是某机密部门的打字员,她现在接到一个任务:需要在一天之内输入几百个长度固定为6的密码。当然,她希望输入的过程中敲击键盘的总次数越少越好。

不幸的是,出于保密的需要,该部门用于输入密码的键盘是特殊设计的,键盘上没有数字键,而只有以下六个键:swap0swap1updownleftright。为了说明这 66 个键的作用,我们先定义录入区的 66 个位置的编号,从左至右依次为 1,2,3,4,5,61,2,3,4,5,6。下面列出每个键的作用:

  • swap0:按 swap0,光标位置不变,将光标所在的位置的数字与录入区的 11 号位置的数字(左起第一个数字)交换。如果光标已经处在录入区的 11 号位置,则按 swap0 键之后录入区的数字不变。

  • swap1:按 swap1,光标位置不变,将光标所在位置的数字与录入区的 66 号位置的数字(左起第六个数字)交换。如果光标已经处在录入区的 66 号位置,则按 swap1 键之后录入区的数字不变。

  • up:按 up,光标位置不变,讲光标所在位置的数字加 11(除非该数字是 99)。例如,如果光标所在位置的数字为 22,按 up 之后,该处的数字变为 33;如果光标所在位置的数字为 99,按 up 之后,该处的数字不变,光标位置也不变;

  • down:按 down,光标位置不变,讲光标所在位置的数字减 11(除非该数字是 00)。如果光标所在位置的数字为 00,按 down 之后,该处的数字不变,光标位置也不变;

  • left:按 left,光标左移一个位置,如果光标已在录入区的 11 号位置(左起第一个位置)上,则光标不动;

  • right:按 right,光标右移一个位置,如果光标已在录入区的 66 号位置(左起第六个位置)上,则光标不动;

当然,为了使这样的键盘发挥作用,每次录入密码之前,录入区总会随机出现一个长度为 66 的初始密码,而且光标会固定出现在 11 号位置上。当巧妙的使用上述六个特殊键之后,可以得到目标密码,这时光标允许停留在任何一个位置。

现在,阿兰需要你的帮助,编写一个程序,求出录入一个密码需要的最少的击键次数。

输入格式

仅一行,含有两个长度为 66 的数,前者为初始密码,后者为目标密码,两个密码之间用一个空格隔开。

输出格式

仅一行,含有一个正整数,为最少需要的击键次数。

123456 654321
11