#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <queue>
#include <deque>
#include <stack>
#define INF 0x3f3f3f3
using namespace std;
typedef long long LL;
const int maxn=1e5+5;
int N;
LL ans,x;
priority_queue<int,vector<int>,greater<int> >q;
int main()
{
scanf("%d",&N);
ans=0;
for(int i=1; i<=N; i++)
{
scanf("%lld",&x);
q.push(x); //先把股票借了,不付钱。
if(!q.empty()&&x>q.top())
{
ans+=x-q.top(); //有高价!!!股票是卖了,钱暂时不还,万一还有更高价呢?
q.pop();
q.push(x); //万一还有更高价呢,把x压进去,当中间商品
}
}
printf("%lld\n",ans); //盈利了的股票还钱,没盈利的把股票还给他!
return 0;
}
CodeForces 865D
最新推荐文章于 2020-12-05 21:22:14 发布