No Rules Rules

절댓값 힙 (feat. 백준, 11286번) 본문

생활/코테

절댓값 힙 (feat. 백준, 11286번)

개발하는 완두콩 2022. 8. 16. 20:40
728x90
반응형

절댓값 힙
https://www.acmicpc.net/problem/11286

 

11286번: 절댓값 힙

첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <queue>
#include <vector>
#include <cmath>
using namespace std;
struct Cmp {
    bool operator()(const int& v1, const int& v2) const {
        if (abs(v1) == abs(v2))
            return v1 > v2;
        return abs(v1) > abs(v2);
    }
};
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	priority_queue<int, vector<int>, Cmp> ans;
	register int N;
	cin >> N;
	for (register int i = 0, v; i < N; ++i) {
		cin >> v;
		if (v == 0)
			if (ans.empty())
				cout << 0 << "\n";
			else
				cout << ans.top() << "\n", ans.pop();
		else
			ans.push(v);
	}
	return 0;
}
// *&)*@*

자료구조 우선순위큐의 predicate를 직접 정의하여 삽입하고 출력합니다.

728x90
반응형
Comments