#include <iostream>
#include <cstdio>
#include <string>
#include <queue>
using namespace std;
struct Complex{
int real;
int imag;
Complex(int a,int b): real(a),imag(b){}//构造器
bool operator<(Complex c) const{//重写小于号
return real*real+imag*imag < c.real*c.real+c.imag*c.imag;
}
};
int main(){
int n;
while(scanf("%d",&n) != EOF){
string str;
priority_queue<Complex> que;
while(n--){
cin >> str;
if (str == "Pop"){
if(que.empty()){
printf("empty\n");
}else{
printf("%d+i%d\n",que.top().real,que.top().imag);
que.pop();
printf("SIZE = %d\n",que.size());
}
}else{
// string str1;
// cin >> str1;
// Complex complex = new Complex(str1.substr(0,str1.find("+")) - '0',str1.substr(str1.find("i")+1));
// complex.real = str1.substr(0,str1.find("+")) - '0';
// complex.imag = str1.substr(str1.find("i")+1);
int a,b;
scanf("%d+i%d",&a,&b);
// que.push(Complex(str1.substr(0,str1.find("+")) - '0',str1.substr(str1.find("i")+1)));
que.push(Complex(a,b));//直接构造对象
printf("SIZE = %d\n",que.size());
}
}
}
// string str = "string";
// printf("%d",str.find("r"));
// cin >> str.substr(0,2)
return 0;
}
复数集合
最新推荐文章于 2024-02-13 16:22:18 发布