题解 | #复数集合#

复数集合

https://www.nowcoder.com/practice/abdd24fa839c414a9b83aa9c4ecd05cc?tpId=67&tqId=29643&tPage=1&ru=/kaoyan/retest/1005&qru=/ta/bupt-kaoyan/question-ranking

#include <cstdio>
#include <iostream>
#include <queue>
using namespace std;

struct Complex{
    int real,img;
    Complex(int real ,int img ): real(real),img(img){}
    bool operator < (Complex c)const{
        return real*real+img*img < c.real*c.real+c.img*c.img;
    }
};

int main() {
    priority_queue<Complex> myPriQueue;
    int num;
    string opera;cin>>num;
    while (num--) {
        cin>>opera;
        if(opera=="Pop"){
            if(myPriQueue.empty())cout<<"empty"<<endl;
            else{
                cout<<myPriQueue.top().real<<"+i"<<myPriQueue.top().img<<endl;
                
                myPriQueue.pop();cout<<"SIZE = "<<myPriQueue.size()<<endl;
            }
        }
        else if(opera=="Insert"){
            int a,b;
            scanf("%d+i%d",&a,&b);
            myPriQueue.push(Complex(a,b));
            cout<<"SIZE = "<<myPriQueue.size()<<endl;
        }
    }


}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务