题解 | #复数集合#

复数集合

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

#include <iostream>
#include <queue>
#include <string>

using namespace std;

struct plurality{
    int num;
    int i;
    plurality(int num,int i):num(num),i(i) {}
};

bool operator <(plurality x,plurality y){
    int xdata = x.num*x.num+x.i*x.i;
    int ydata = y.num*y.num+y.i*y.i;
    if (xdata==ydata){
        return x.i>y.i;
    } else{
        return xdata<ydata;
    }
}

int main(){
    int n;
    string str,s;
    priority_queue<plurality> plQ;
    cin>>n;
    while (n--){
        cin>>str;
        if (str == "Pop"){
            if (plQ.empty()){
                cout<<"empty"<<endl;
            } else{
                plurality number = plQ.top();
                plQ.pop();
                cout<<number.num<<"+i"<<number.i<<endl;
                cout<<"SIZE = "<<plQ.size()<<endl;
            }
        } else if (str == "Insert"){
            cin>>s;
            int end = s.find('+');
            plQ.push(plurality(stoi(s.substr(0,end)), stoi(s.substr(end+2))));
            cout<<"SIZE = "<<plQ.size()<<endl;
        }
    }

    return 0;
}

全部评论

相关推荐

06-19 19:06
门头沟学院 Java
点赞 评论 收藏
分享
废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
06-26 19:47
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务