// 模相等的输出b较小的复数。。。
#include
#include
#include
using namespace std;
struct Node{
int a; // 实部
int b; // 虚部
int m; // 模
}f[1001];
bool cmp(Node a,Node b){ // 对模从大到小排序
if(a.m!=b.m) return a.m>b.m;
else return a.b
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int size=0;
while(n--){
char s[100];
scanf("%s",s);
if(s[0]=='P'){
if(size==0) printf("empty
");
else{
sort(f,f+size,cmp);
printf("%d+i%d
",f[0].a,f[0].b);
for(int i=0;i // 将输出的删除。。。
size--;
printf("SIZE = %d
",size);
}
}else if(s[0]=='I'){
scanf("%d+i%d",&f[size].a,&f[size].b);
f[size].m=f[size].a*f[size].a+f[size].b*f[size].b;
size++;
printf("SIZE = %d
",size);
}
}
}
return 0;
}