洛谷 1168 中位数

来源:互联网 发布:软件代理合同范本 编辑:程序博客网 时间:2024/06/06 01:03
#include<bits/stdc++.h>using namespace std;int n, sum1, sum2;priority_queue<int, vector<int>, greater<int> > q2;priority_queue<int> q1;int main(){    scanf("%d", &n);    for(int i = 1, x; i <= n; i++){        scanf("%d", &x);        if(!sum1){            sum1++;            printf("%d\n", x);            q1.push(x);            continue;        }           if(sum1 == sum2){            sum1++;            int bi = q2.top();            if(bi >= x){                q1.push(x);                printf("%d\n", q1.top());            }            else{                int bi = q2.top();                printf("%d\n", bi);                q1.push(bi);                q2.pop();                q2.push(x);            }        }        else if(sum1 == sum2 + 1){            sum2++;            int sm = q1.top();            if(sm >= x){                q2.push(sm);                q1.pop();                q1.push(x);            }            else                q2.push(x);        }    }    return 0;}