rt
#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int main()
{
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(!q.empty()&&q.top()<x)
{
ans+=x-q.top();
q.pop();
q.push(x);
}
q.push(x);
}
cout<<ans;
return 0;
}
问一下为什么判断成立要push两次。