题目大意:
现在有n个城市,你依次经过城市$1$ ~ $n$。每个城市都有一个共同的物品,但它们的价格可能会不一样。你经过一个城市时可以选择将这个物品以 $a_i$ 的价格买下来,或者是以 $a_i$的价格卖出去(卖出去的前提是你已经有至少一个此物品),每个城市最多进行一次买/卖操作。
初始时你又无限多的钱,问在走完这n个城市后你的钱最多能变成多少,并输出此时交易的次数。当能通过多种买/卖的方法达到最多钱的时候,输出交易次数最少的那一次。
解题思路:
我们可以用一个可以自动排好序的容器
存储当前可以买到哪些货,排序是按照最便宜的在前面这样,每次到了可以卖的时候就先卖掉
,然后到一个可以赚更多钱的城市的时候,再收回
,重新卖一遍。
每个输入的x存两次是一次代表着买入一次代表着卖出。当买入时说明一定在最后卖出了,这时买卖次数++。
Mycode:
1 |
|