【51NOD—贪心算法专题】 A 低买高卖

https://www.51nod.com/contest/Problem.html#!problemId=2206&contestId=54

低买高卖

基准时间限制:1 秒 空间限制:131072 KB 分值: 5

考虑股票市场,一共有n天。
对于第i天,B君知道股票的价格是每单位a[i]元
在每一天,B君可以选择买入一个单位的股票,卖出一个单位的股票,或者什么都不做(持有)。
刚开始B君有无穷多的钱,但是没有任何股票。
问n天之后B君最多可以赚多少钱。
(1 <= n <= 200000)
(1 <= a[i] <= 10000)

Input

第一行一个整数n表示天数。
接下来一行n个整数,表示每天的价钱。

Output

一行一个整数表示最多可以赚的钱数。

Input示例

9
10 5 4 7 9 12 6 2 10

Output示例

20

AC代码

//卖比买赚钱,假设每天都在卖(那么每天都在赚钱)
//不妨假设每到新的一天,都把当天的股票卖掉
//那因为现在一点股票都没有,所有至少有一天要买入,
//那就需要在今天或今天的前某天把其当天的卖出改成持有,或者持有改成买入 
#include 
#include 
#include 
using namespace std;
typedef long long ll;

int main(int argc, char** argv) {
	priority_queueq;//大根堆 
	int n;
	scanf("%d",&n);
	int x;
	ll z=0;
	for(int i=0;i

 

 

你可能感兴趣的:(机试)