昆仑山上放宝物 Apare_xzc

昆仑山上放宝物 Apare_xzc


时间限制:1000ms
内存限制:128M


题面

        叮~欢迎来到昆仑山仙境。昆仑山上的仙人正在采集山顶上的灵气。他把这个任务交给了大弟子。仙人有一个宝物,这个宝物可以快速吸收山顶上的灵气,但是需要放置到合理的位置上。宝物只能放到山顶上(山顶也是灵气浓度最高的地方)。宝物有阴阳两极,需要放在不同高度的山顶上。阴极放在较低的山头,阳极放在较高的山头。阳极比阴极高度到一定程度,才能开始收集灵气。每个宝物需要的高度差各不相同。
        昆仑山的山头一个接一个自西向东连绵着。他们的高度已知。大弟子申请,每放置一个宝物,可以用借两次仙人的仙鹤,第一次载他到某个山脚下,第二次将他从他所在的某个山脚接回去。仙人同意了。
        虽然大弟子跟着仙人修身养性,也练成了一点法力,但是爬上山还是一件很消耗体力的事情,而且昆仑雪山顶上氧气稀薄。所以他想爬最少的山,完成每个任务。也就是说,他可以借仙鹤到达任何的山脚作为起点,然后翻过一些山,把宝物的阴阳两极放置妥当后,再呗仙鹤接回。他想在完成任务的同时爬最少座山(因为山顶憋气太难受了)。如果有多个方案,他想选择路上所有山顶高度之和最小的方案,这样会更省力嘛。如果这些条件都能满足,他会优先把宝物放到更靠东边的地方(因为那边是日出的方向,灵气的质量更高)。
现在他要告诉仙鹤送他去哪个山脚下,以及去哪个山脚下接他。他有点头大,你能帮帮他吗?

输入格式

        第一行,两个正整数n,t(2<=n<=50,000, 1<=t<=100),分别代表山头的数量和要放置的宝物的数量。第二行有n个正整数h1,h2,h3…hn(1000<=hi<=2000,000,000),代表自西向东每个山头的高度。然后有t行,每行有一个正整数xi(1<=xi<=1e6),代表第i个宝物吸收灵气时它的阴阳两极需要的最小高度差。

输出格式

        输出t行,每行两个数id_st,id_ed,代表放置第i个宝物的起点和重点的山头的序号。要求id_st < id_ed

样例输入

4 1
10000 10003 10001 10009
9

样例输出

1 4

猜你喜欢

转载自blog.csdn.net/qq_40531479/article/details/104454510