首页 > 试题广场 >

Masha与老鼠

[编程题]Masha与老鼠
有一天Masha回到家,发现有n只老鼠在它公寓的走廊上,她大声呼叫,所以老鼠们都跑进了走廊的洞中。 
这个走廊可以用一个数轴来表示,上面有n只老鼠和m个老鼠洞。第i只老鼠有一个坐标𝑥𝑖,第𝑗个洞有一个坐标𝑝𝑗和容量𝑐𝑗。容量表示最多能容纳的老鼠数量。 
找到让老鼠们全部都进洞的方式,使得所有老鼠运动距离总和最小。老鼠i进入洞j的运动距离为|𝑥𝑖 − 𝑝𝑗
无解输出-1。

输入描述:
第一行包含两个整数n,m,表示老鼠和洞的数量。
第二行包含n个整数𝑥1...𝑛,表示老鼠坐标。
接下来m行每行两个整数𝑝, 𝑐,表示每个洞的坐标和容量。


输出描述:
输出最小运动距离总和或-1。
示例1

输入

4 5 
6 2 8 9 
3 6 
2 1 
3 6 
4 7
4 7

输出

11
示例2

输入

7 2 
10 20 30 40 50 45 35 
-1000000000 10 
1000000000 1

输出

7000000130

备注:
𝑛, 𝑚 ≤ 106, 1 ≤ 𝑐 ≤ 𝑛, 1 ≤ |𝑝|, |𝑥| ≤ 109

这道题你会答吗?花几分钟告诉大家答案吧!

问题信息

上传者:牛客301599号
难度:
0条回答 24浏览

热门推荐

通过挑战的用户

查看代码
Masha与老鼠