题解 | #复数集合#

复数集合

https://www.nowcoder.com/practice/abdd24fa839c414a9b83aa9c4ecd05cc

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

struct Complex{
    int real;
    int imag;
    Complex(int r, int i):real(r), imag(i){}
    bool operator< (Complex c2) const {
        return real*real+imag*imag < c2.real*c2.real+c2.imag*c2.imag;
    }
};

priority_queue<Complex> q;

int main() {
    int n;
    while(cin >> n){
        while(n --){
            string op;
            cin >> op;
            if(op == "Pop"){
                if(q.empty())
                    cout << "empty" << endl;
                else{
                    cout << q.top().real << "+i" << q.top().imag << endl;
                    q.pop();
                    cout << "SIZE = " << q.size() << endl;
                }
            }else{//Insert
                int real, imag;
                scanf("%d+i%d", &real, &imag);
                q.push(Complex(real, imag));
                cout << "SIZE = " << q.size() << endl;
            }
        }
    }

    return 0;
}

全部评论

相关推荐

某物流公司 软件开发岗 总包26-30
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务