#include <iostream>
#include <queue>
#include <functional>
#define INT long long int 
using namespace std;

INT n;

int main()
{
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    priority_queue<INT, vector<INT>, greater<INT> > p;
    priority_queue<INT> q;

    cin >> n;

    for(int i=0; i<n; i++)
    {
        INT m = 0;
        cin >> m;

        if(q.empty())
        {
            q.push(m);
        }
        else{
            if(p.size() + 1 == q.size() || p.size() + 2 == q.size())
            {
                p.push(m);
                if(q.top() > p.top())
                {
                    INT qq = q.top();
                    INT pp = p.top();
                    q.pop();
                    p.pop();
                    q.push(pp);
                    p.push(qq);
                }
            }
            else{
                q.push(m);
                if(q.top() > p.top())
                {
                    INT qq = q.top();
                    INT pp = p.top();
                    q.pop();
                    p.pop();
                    q.push(pp);
                    p.push(qq);
                }
            }
        }
        cout << q.top() << "\n";
    }

    return 0;
}

 

-우선순위 큐 

'코딩 일지 > baekjoon' 카테고리의 다른 글

2447  (0) 2023.12.28
1260 dfs와 bfs  (0) 2023.08.30
12865 - 평범한 배낭  (0) 2023.08.17
1463 - 1로 만들기  (0) 2023.02.11
2839 설탕 배달  (0) 2023.02.11

+ Recent posts