https://www.acmicpc.net/problem/1655
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//가운데를 말해요 1655
int main()
{
priority_queue <int> p;
priority_queue <int, vector<int>, greater<int>> q;
int n,i,a;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(p.empty() || q.empty())
{
//puts("11");
p.push(a);
}
else
{
//puts("22");
if(q.top()<=a)
{
//puts("33");
q.push(a);
}
else
{
//puts("44");
p.push(a);
}
}
if(!(p.size() == q.size() || p.size() == q.size() + 1))
{
//uts("55");
if(p.size() > q.size())
{
q.push(p.top());
p.pop();
}
else{
p.push(q.top());
q.pop();
}
}
printf("%d\n", p.top());
}
return 0;
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
스택 Stack (0) | 2022.02.04 |
---|---|
단어 뒤집기 2 (0) | 2021.12.31 |
BOJ 외판원 순회 2 - 10971번 (0) | 2020.05.08 |
백준 - 프린터 큐 : 1966번 (0) | 2020.04.26 |
백준 - 로마 숫자 만들기 : 16922번 (0) | 2020.04.26 |