multiset--P1168 中位数

P1168 中位数
multiset保证数据可重、有序。
一个迭代器始终指向中位数

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
using namespace std;
#define ll long long
#define PII piar
signed main()
{
	multiset<int> st;
	int n; cin>>n;
	int t; cin>>t;
	st.insert(t);
	auto it=st.begin();
	cout<<*it<<endl;
	int last=*it,flag=0;
	for(int i=2;i<=n;i++){
		cin>>t;
		st.insert(t);
		if(t<last) flag--;
		else flag++;
		if(i%2==1){
			if(flag==2) it++;
			else if(flag==-2) it--;
			cout<<*it<<endl;
			last=*it;
			flag=0;
		}
	}
}
上一篇:set/multiset


下一篇:C语言10.0