你获得了 JOI 社开发的一款电视游戏软件。这是一款相当不错的游戏,你每天都在愉快地游玩。
某天,游戏中出现了一个被称为“激光”的关卡。这个关卡极其困难,即使是优秀的玩家也只能以极低的概率通关。在多次挑战这个关卡的过程中,你意识到,如果能做出快速判断,或许就有机会通关,于是你开始思考编写程序来应对这个关卡。
“激光”关卡的舞台是一个设置了 个屏障的矩形区域。舞台被划分为 的正方形格子,每个格子由非负整数 表示为 。其中 是左下角的格子, 表示从 向右移动 格、向上移动 格到达的格子。
关卡开始时,敌人出现并发动攻击。敌人会连续发动 次攻击。第 次攻击时,敌人会从格子 向格子 发射激光。
每个屏障占据若干个 坐标相同的格子,形成一个宽度为 、高度为 1 的长方形。屏障 ()在关卡开始时占据从格子 到格子 的区域。在敌人第一次攻击前,以及每次攻击之间的间隙,你可以随时将任意一个屏障向左或向右移动一格。每次移动只能将一个屏障向右移动一格,或向左移动一格。
激光碰到屏障时威力会减弱。通过移动屏障,使得激光碰到所有屏障,从而将激光的威力降至最低。
你的目标是:在该关卡中,使屏障移动的总次数尽可能少。
题目
给定关卡开始时每个屏障的位置,以及每次敌人攻击的位置。当移动屏障使得激光碰到所有屏障时,求每个屏障移动次数的最小值。