QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#1961. 邮递员

الإحصائيات

有一条笔直的道路,上面运行着两种电车。一种是自东向西行驶的电车,另一种是自西向东行驶的电车。对于每种类型的电车,都有多辆电车定期运行,因此任何人可以在任何时间向任何方向乘坐电车。要乘坐电车,你必须为你所采取的每个方向支付一张票。换句话说,要乘坐自东向西行驶的电车,你必须支付一张 W 票(西行票);反之,要乘坐自西向东行驶的电车,你必须支付一张 E 票(东行票)。你可以在任何时间和地点上下电车,一旦上车,你可以随心所欲地乘坐。

邮递员 Bob 每天去邮局投递分配给他的邮件。他使用电车来投递邮件。为了方便起见,每个需要投递邮件的位置都用一个 $x$ 坐标表示,邮局位于 $x = 0$。

为了投递 $n$ 件邮件,邮局给了 Bob $n$ 张电车票。Bob 使用一张票投递一件邮件。然而,在邮局提供的 $n$ 张票中,W 票的数量为 $w$,E 票的数量为 $e$ ($e = n - w$)。通过使用他在邮局收到的票,Bob 不仅想要找出投递 $n$ 件邮件的顺序,还想最小化他使用电车行驶的距离。

根据投递邮件的顺序,它分为两种类型。第一种类型,记为 $t = 1$,是指邮件投递顺序不重要的情况。第二种类型,记为 $t = 2$,是指某一件特定的指定邮件必须最后投递,而所有其他邮件可以按任意顺序投递的情况。

例如,假设 $n = 5$,$w = 4$(W 票的数量),$t = 2$,需要投递邮件的位置的 $x$ 坐标为 $(-20, -15, 20, 30, 10)$,且必须最后投递的指定邮件的 $x$ 坐标为 $x = 10$。最优投递路线如图 H.1 所示,使用电车移动的总距离为 90。如图 H.1 所示,使用了四张 W 票和一张 E 票,并且指定邮件最后被投递。

图 H.1

考虑另一个例子,除了 $t = 1$ 外,所有信息与上述相同。这种情况下的最优投递路线如图 H.2 所示,总距离为 80。在这种情况下,你可以看到也使用了四张 W 票和一张 E 票。

图 H.2

给定关于 Bob 应投递的邮件的信息,编写一个程序来找出他使用电车行驶的最小距离。

输入格式

程序从标准输入读取数据。输入的第一行包含三个整数 $n$,$w$ 和 $t$ ($1 \le n \le 3 \times 10^5$,$0 \le w \le n$,$1 \le t \le 2$),其中 $n$ 是邮件数量,$w$ 是 W 票的数量,$t$ 表示如上所述的投递顺序类型。注意 E 票的数量为 $n - w$。 在下一行中,给出 $n$ 个整数。第 $i$ 个整数 $x_i$ ($1 \le i \le n$,$-10^9 \le x_i \le 10^9$,$x_i \neq 0$) 是第 $i$ 件邮件应投递位置的 $x$ 坐标。当 $t = 2$ 时,$x_n$ 表示必须最后投递的特定指定邮件的 $x$ 坐标。

你可以假设没有两个 $x_i$ 是相同的。

输出格式

程序应写入标准输出。仅打印一行。该行应包含 Bob 投递所有邮件所行驶的最小距离。如果 Bob 无法使用这些票投递邮件,则打印 -1。

样例

样例输入 1

5 4 2
-20 -15 20 30 10

样例输出 1

90

样例输入 2

5 4 1
-20 -15 20 30 10

样例输出 2

80

样例输入 3

7 1 2
10 13 -30 24 50 -5 -21

样例输出 3

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.