#478. Package Pickup

0

Package Pickup

Package Pickup

题目描述

注意:本题时间限制为 4s,是默认时间限制的 2 倍。 农夫约翰用如下过程在数轴上以一种奇怪的方式分布奶牛和包裹: 农夫约翰选择一个数 MM(1≤M≤10181 \le M \le 10^{18})。 农夫约翰选择 NN(1≤N≤2⋅1041 \le N \le 2 \cdot 10^4)个区间 [Li,Ri][L_i, R_i] 来分布奶牛(1≤Li≤Ri≤10181 \le L_i \le R_i \le 10^{18})。随后他在位置 Li,Li+M,Li+2M,…,RiL_i, L_i + M, L_i + 2M, \ldots, R_i 放置奶牛。保证 Ri−LiR_i - L_i 是 MM 的倍数。 农夫约翰选择 PP(1≤P≤2⋅1041 \le P \le 2 \cdot 10^4)个区间 [Ai,Bi][A_i, B_i] 来分布包裹(1≤Ai≤Bi≤10181 \le A_i \le B_i \le 10^{18})。随后他在位置 Ai,Ai+M,Ai+2M,…,BiA_i, A_i + M, A_i + 2M, \ldots, B_i 放置包裹。保证 Bi−AiB_i - A_i 是 MM 的倍数。 当奶牛和包裹都分布完后,农夫约翰想知道奶牛捡起包裹需要多久。每一秒,农夫约翰可以通过对讲机向一头奶牛下达一条指令,使其从当前位置向左或向右移动 1 个单位。如果一头奶牛走到某个包裹所在的位置,它就能捡起该包裹。农夫约翰想知道让奶牛捡起所有包裹所需的最少时间(秒数)。

输入格式

第一行包含 MM、NN 和 PP。 接下来 NN 行,每行包含两个整数 LiL_i 和 RiR_i。 接下来 PP 行,每行包含两个整数 AiA_i 和 BiB_i。

输出格式

输出一个整数,表示在每秒只能对一头奶牛下达一条左右移动指令的条件下,奶牛捡起所有包裹所需的最少时间。

100 3 7
10 10
20 20
30 30
7 7
11 11
13 13
17 17
24 24
26 26
33 33
22
2 1 1
1 5
2 6
3

提示

在上面的测试用例中,假设奶牛和包裹从左到右编号。农夫约翰可以按如下步骤在 22 秒内捡起包裹: 对奶牛 11 下达 33 次向左移动,使其捡起包裹 11 下达 对奶牛 33 下达 33 次向右移动,使其捡起包裹 77 下达 44 次向右移动 对奶牛 22 下达 44 次向右移动,使其捡起包裹 55 对奶牛 11 下达 1010 次向右移动 使其捡起包裹 22、33 和 44 对奶牛 对奶牛 22 下达 22 次向右移动,使其捡起包裹 66 第二个样例中,有三头奶牛和三个包裹。农夫约翰可以对每头奶牛各下达一次向右移动指令。 计分(SCORING): 输入 3-4:保证奶牛和包裹的总数量不超过 2⋅1052 \cdot 10^5 输入 5-10:保证 N,P≤500N, P \le 500。 输入 11-13:保证包裹区间与奶牛区间均不相交。 输入 14-20:无额外限制。 题目作者:Suhas Nagar 和 Benjamin Qi

标签: USACO|2025|Platinum

来源

USACO|2025|Platinum