1 solutions
-
2
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=3e5+10; int p[N]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>p[i]; } priority_queue<int,vector<int>,greater<int>> q; //小根堆 LL ans=0; for(int i=1;i<=n;i++) { if(q.size()&&q.top()<p[i]) //有可买卖的股票 { ans-=q.top(); //以前那个不卖 q.pop(); //删除以前的 ans+=p[i]; //现在卖 q.push(p[i]); //为了方便以后反悔 } q.push(p[i]); //买当前这个 } cout<<ans; return 0; }
- 1
Information
- ID
- 3056
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 2
- Accepted
- 2
- Uploaded By