NC219562. 小蓝小兰小岚小澜
描述
输入描述
第一行一个正数Q,代表操作数接下来Q行,每行两个整数op和X
输出描述
输出Q行,每行一个整数S代表小兰总共能得到的最大分数
示例1
输入:
5 1 2 2 1 2 2 2 3 2 4
输出:
0 2 6 11 17
C++(clang++11) 解法, 执行用时: 164ms, 内存消耗: 2832K, 提交时间: 2021-03-25 18:34:17
#include <bits/stdc++.h> #define pb push_back #define ll long long using namespace std; /////////// const int N=1e6+10; void sovle() { } int main() { int t; cin>>t; priority_queue<int>a; priority_queue<int>b; ll sum=0; ll ans=0; while(t--) { int x,y; cin>>x>>y; if(x==1) { sum+=y; } if(x==2) { ans+=y; if(!b.empty()&&-b.top()<y) { int tmp=-b.top(); b.pop(); b.push(-y); a.push(tmp); ans=ans-tmp+y; } else if(y>0) { a.push(y); } } while(b.size()<sum&&!a.empty()) { int tmp=a.top(); a.pop(); ans+=tmp; b.push(-tmp); } cout<<ans<<endl; } return 0; }