#include <queue>
#include <vector>
#include <map>
using namespace std;
priority_queue< int, vector<int>, greater<int> > pq1, pq2, pq3;
map<int, bool> lefts;
int solution(vector<int> a) {
for(int i=0 ; i<a.size() ; i++) pq2.push(a[i]);
for(int i=0 ; i<a.size() ; i++){
pq1.push(a[i]);
pq3.push(a[i]);
int fisrt=pq1.top(), second=pq2.top();
lefts[max(fisrt, second)]=true;
while(true){
if(pq3.size()&&pq2.size()&&pq3.top()==pq2.top())
pq3.pop(), pq2.pop();
else break;
}
}
return lefts.size();
}
해설: 우선순위 큐를 3개를 쓰면 됨
그럼 20000
코드 존나 거지같이 짜네