#P10964. Fence Obstacle Course

Fence Obstacle Course

Description

农夫约翰为奶牛们建造了一条障碍赛道。赛道由一系列 NN 个长度不一的栅栏组成(1N1000001 \le N \le 100000),每个栅栏都与 x 轴平行。栅栏 ii 的 y 坐标为 ii

FJ 的谷仓门位于原点(如下图中的 '*' 处)。赛道的起点位于坐标 (SS,NN)。

   +--S--+-+-+
+--+--+--+
    ...
   +--+--+-+
      +--+-+-+
|==|==|==*=|=|=|
-3 -2 -1 0 1 2 3

FJ 原本的意图是让奶牛跳过栅栏,但奶牛更喜欢四蹄着地。因此,它们会沿着栅栏行走,当栅栏结束时,它们会转向 x 轴并继续直线行走,直到碰到另一个栅栏段或谷仓的侧面。然后它们决定向左或向右走,直到到达栅栏段的末端,依此类推,直到最终到达谷仓的侧面,然后可能经过短暂的步行,达到终点。

自然地,奶牛们希望尽可能少地行走。找出奶牛们从起点到谷仓门来回行走的最短距离。

Input Format

  • 第 1 行:两个用空格分隔的整数:NNSS。(100000S100000-100000 \le S \le 100000)
  • 第 2 行到第 N+1N+1 行:每行包含两个用空格分隔的整数:AiA_iBiB_i (100000Ai<Bi100000-100000 \le A_i < B_i \le 100000),分别表示栅栏段 ii 的起始和结束 x 坐标。第 2 行描述栅栏 #1;第 3 行描述栅栏 #2;依此类推。起始位置将满足 ANSBNA_N \le S \le B_N。注意,栅栏将按照输入序列的逆序遍历。

Output Format

  • 第 1 行:从起点到终点绕过栅栏所需的最小 x 方向来回距离。y 方向的距离不计入,因为它始终为 NN
4 0
-2 1
-1 2
-3 0
-2 1
4

Hint

(由 ChatGPT 4o 翻译)