1일1알

백준 1655번 가운데를 말해요 C++ 본문

알고리즘

백준 1655번 가운데를 말해요 C++

영춘권의달인 2022. 5. 24. 12:08

출처 : https://www.acmicpc.net/problem/1655

 

multiset을 이용해서 자동으로 정렬되게 하고, 입력에 따라서 iterator을 조절해 가면서 문제를 해결하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;
	multiset<int> s;
	auto it = s.begin();
	for (int i = 1; i <= n; i++) {
		int input;
		cin >> input;
		s.insert(input);
		if (s.size() == 1) it = s.begin(); 
		else {
			if (input < *it) --it;
		}
		if (i % 2 == 1 && s.size() != 1) {
			++it;
		}
		cout << *it << "\n";
	}
};