首页 > 试题广场 >

商品交易

[编程题]商品交易
  • 热度指数:2941 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解

珐达采下个月要去鸥洲各国考察一趟,采购流通神秘石并从中搞点油水。

珐达采会按顺序依次经过序号分别为1, 2, 3, …, n的鸥洲国家,在第i个国家神秘石的流通价格为Ai鸥。因为行程紧张,在每个国家的停留时间有限,所以他只能花费Ai鸥买入一块神秘石,或者卖出一块手中的神秘石获得Ai鸥,或者什么都不做,而且因为神秘石的保存需要极其先进的高级材料容器,其材料稀有且制作困难,珐达采只有一份容器,故无论何时珐达采手里 最多只能拥有一块神秘石。

珐达采想知道最终能从中获利最大多少鸥。因为交易需要手续费,所以珐达采还想知道在获利最大收益的同时,最少需要交易多少次。因为珐达采是大财阀,所以你可以认为他一开始金钱无限。


输入描述:
第一行一个数n。(1≤n≤100000)

第二行n个数,第i个数表示Ai。(1≤Ai≤1e9)


输出描述:
共一行,两个数,分别代表最大收益和对应的最少交易次数。
示例1

输入

5
9 7 10 1 5

输出

7 4
头像 bandiaoz
发表于 2024-12-27 01:59:19
解题思路 题目描述了一个商人在 个国家按顺序交易神秘石的问题: 每个国家的神秘石价格为 商人同一时刻只能持有一块神秘石 需要计算: 最大获利金额 最少交易次数(在获得最大利润的情况下) 解题思路: 遍历价格数组,当遇到价格上升时: 累加差价到总利润 如果是新的上升序列,交易次数加1 展开全文