劲乐团是这样一个游戏:当游戏开始时,一边播放背景音乐,一边从上至下不断随着音乐掉落Note。(Note是音乐游戏的术语)当该Note掉落至最底部时,则按下对应的键就可以击中该Note并得分。击中的时间越准确得分越高。准确击中可以得到一个COOL,时间稍微有些偏差可以得到一个GOOD。偏差更多或者未击中得到MISS。一个COOL可以得10分,一个GOOD可以得5分。(注意:如果当某一个键被推迟或提前按下时,该位置正好有另一个Note,那么被响应的将是出现较早的那个音符。)
Gardon是劲乐团的高手,正常情况下他可以顺利完成任何难度的歌曲。因此他想让游戏变的更富有挑战性,他决定使用五个手指来弹七个按键的歌曲。这就意味着他的手必须来回移动来击中七个位置的音符。
正常情况下,Gardon采用键盘上的A、S、D、F、J、K、L七个键来对应七个位置,现在Gardon并不打算更改它,只是他用左手的三个手指来操纵ASDF四个键,右手的两个手指操作JKL三个键。
Gardon反应时间的最短间隔被称做一个Tick,一个Tick内,他可以按下一些键,也可以将手指移动,也可以在移动一些手指的同时按下另一些键。但是:正在被移动的手指不能按下任何键,不论是移动的起始点还是终点。恰好,劲乐团对于按键准确程度的判断也是以Tick为单位:正好在该Tick时击中得到COOL,早或者晚一个Tick都将得到GOOD。
游戏一开始时,Gardon的手可以放在任意位置,比如图中的示例,Gardon的手可以放在1、3、4、5、6五个键上,在第四个音符按下的同时将第二个手指从键3上移动到键2上,并完成后面的内容。
注意:不能将手移开,也不能变换手指的顺序,就是说:手指1只能放在键位1、2上,手指2只能放在键位2、3上,手指3只能放在键位3、4上,并且不同的手指不能放在一个键上。一次可以将数个手指同时移动,例如当分别放在1 2 3 5 6的时候,可以同时移动,分别到1 3 4 6 7位置上。并且左手手指不能放到5、6、7位置,右手手指不能放到1、2、3、4位置。
现在Gardon面临了这样一个问题:因为有的时候Note太多或者太复杂,他很难使用五个手指打出全部的COOL,所以他想请你帮忙写个程序,来计算下对于一首歌曲,他最多可以拿到多少分,让他好有个目标来进行练习。