#7369. 低买高卖(Buy Low Sell High)

    ID: 7369 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>贪心数据结构优先队列反悔贪心

低买高卖(Buy Low Sell High)

题目描述

你可以完美预测某只股票未来 NN 天的价格。你希望利用这一信息获利,但每天只能进行一次交易:买入一股、卖出一股,或者什么都不做。初始时你持有 00 股,不允许在手中没有股票时卖出。在 NN 天结束时,你希望手中再次持有 00 股,并希望最终获得的利润尽可能大。

输入格式

第一行包含一个整数 NN,表示天数。

第二行包含 NN 个整数 p1,p2,,pNp_1, p_2, \dots, p_Npip_i 表示第 ii 天一股股票的价格。

输出格式

输出一个整数,表示在 NN 天结束时你能够获得的最大总利润。

样例

9
10 5 4 7 9 12 6 2 10
20
20
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4
41

样例解释

在第一个样例中,一种最优的操作序列为:在价格为 55 时买入一股,价格为 44 时再买入一股,在价格为 99 时卖出一股,价格为 1212 时再卖出一股,然后在价格为 22 时买入一股,最后在价格为 1010 时卖出。总利润为 54+9+122+10=20-5 - 4 + 9 + 12 - 2 + 10 = 20

数据范围与提示

  • 2N3×1052 \le N \le 3 \times 10^5
  • 1pi1061 \le p_i \le 10^6
  • 时间限制:22
  • 内存限制:256256 MB