U309964 股票

题目背景

[原题](https://codingac.com/p/P1753)

题目描述

你可以很好地预测某只股票未来$N$天的价格。你想从中获利,但每天只需要交易一股股票。也就是说,每天你要么买一股,要么卖一股,要么什么都不做。一开始你拥有零股票,当你没有股票的时候你不能出售股票。在$N$天结束时,你想再次拥有零股票,但想尽可能拥有更多的钱。

输入格式

输入以一个整数$N(2≤N≤3*10^5)$开始,即天数。 接下来的一行恰好有$N个整数,p_1,p_2,...p_n(1≤p_i≤10^6)$。$p_i$表示一股股票在第$i$天的价格。

输出格式

在$N$天结束时,输出你最终能得到的最大金额

说明/提示

在第一个例子中,以$5$和$4$的价格分别买入一股,以$9$和$12$的价格分别卖出。 然后在价格为$2$时买入一股,价格为$10$时卖出。 总利润是 $-5 - 4 + 9 + 12 - 2 + 10 = 20$。 这份代码运用的是优先队列$+$贪心$+$反悔 下面是$AC$代码 ```cpp #include #include using namespace std; priority_queue jlwz; int n; long long ans=0; int main() { cin>>n; for(int i=1;i>k; if(jlwz.size()&&k>jlwz.top()) { ans+=(k-jlwz.top()); jlwz.pop(); jlwz.push(k); } jlwz.push(k); } cout