聪明的小明发现,Alliance市与Horde市的市场上某些商品存在着巨大的差价。这决定了小明可以从中获取相当可观的利润。然而这个发现还并没有被大部分人知道,于是小明决定从事这项业务。小明几乎花光了他所有的积蓄购买了一个相当大的飞艇,以及往返于Alliance市和Horde市之间的各种通行证。小明决定在Alliance市购买一些商品,驾驶飞艇到Horde市以当地市场价卖掉,然后在Horde市城买一些商品,驾驶飞艇再回到Alliance市卖掉。这样一个来回,小明就可以赚到不少钱。
通过商业调查,他已经在出发前就知道了两个城市各种商品的价格。在他现有的资产的前提下,他希望能够在一次旅行中赚取尽可能多的金币。那么请你设计一个程序,为小明设计一个购买方案,使一次来回能够赚到最多的钱。
输入数据有若干行;
第 1 行,两个整数N、M,表示他在出发前有N元钱,两个城市的市场中都有M种商品。
第2-M+1行,每行两个整数A_i、B_i,表示第i种商品在Alliance市的市场价为A_i,在Horde市的市场价为B_i。
输出数据为若干行;
第 1 行,一个整数,表示小明一次来回最多能够赚到的钱。最后结果不超过 4000000。
第2 - M+1行,第i+1行为第i个商品的购买方法,输出一个句子。如果要从Alliance市购买k个,输出”Buy k from Alliance”,如果要从Horde市购买k个,输出”Buy k from Horde”,如果不需要购买,输出”Buy 0”。如果多个的方案赚得的钱都是最多的,则输出购买的商品序号最靠前的这种方案。
23 5 6 9 11 7 3 2 4 6 5 3
33 Buy 3 from Alliance Buy 1 from Horde Buy 0 Buy 1 from Alliance Buy 9 from Horde
数据规模
1\leq N\leq 100,000
1\leq M\leq 100
时间限制 | 1 秒 |
内存限制 | 128 MB |