CE求助

P1168 中位数

dpfs @ 2023-08-18 22:20:48

rt 为什么第18行编译失败?

#include<bits/stdc++.h>  
using namespace std; 
priority_queue<int,vector<int> > q1;
priority_queue<int,vector<int>,greater<int> > q2;
int main()
{
    int n;
    cin>>n;
    int l;
    cin>>l;
    q1.push(l);
    cout<<q1.top()<<endl;
    for(int i=2;i<=n;i++)
    {
        cin>>l;
        if(l>q1.top()) q2.push(l);
        else q1.push(l);
        while(abs(q1.size()-q2.size())>1)
        {
            if(q1.size()>q2.size())
            {
                int k=q1.top();
                q1.pop();
                q2.push(k);
            }
            else
            {
                int k=q2.top();
                q2.pop();
                q1.push(k);
            }
        }
        if(i%2==1)
        {
             cout<<(q1.size()>q2.size()?q1.top():q2.top())<<endl;
        }
    }
    return 0;
}

by Sprague_Garundy @ 2023-08-18 22:26:30

@dpfs 你这 size 返回值是 size_t 类型,相减无符号,abs 不对了吧


by dpfs @ 2023-08-18 22:37:26

哦 谢谢大佬


|