luogu P1168 中位数
由于看不懂poj的输出,就用luogu的对顶堆代替吧!
#include<bits/stdc++.h> using namespace std; const int N=100010; priority_queue<int,vector<int>,greater<int> >Q1; priority_queue<int>Q2; int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;++i){ int t;scanf("%d",&t); if(i==1||t>=Q1.top())Q1.push(t); else Q2.push(t); if(Q1.size()>Q2.size()+1){ Q2.push(Q1.top()); Q1.pop(); } else if(Q2.size()>Q1.size()){ Q1.push(Q2.top()); Q2.pop(); } if(i&1) printf("%d\n",Q1.top()); } return 0; }