利用scanf("%d+i%d)的方法来实现特殊形式的输入
#include <iostream>
#include<queue>
using namespace std;

struct num{
	int real;	  //实部
	int fiction;  //虚部
};

bool operator < (num lhs,num rhs) {
	if (lhs.fiction * lhs.fiction + lhs.real * lhs.real < rhs.fiction * rhs.fiction + rhs.real * rhs.real)
		return true;
	else if (lhs.fiction * lhs.fiction + lhs.real * lhs.real == rhs.fiction * rhs.fiction + rhs.real * rhs.real) 
	{
		return lhs.fiction > rhs.fiction;
	}
	else {
		return false;
	}

}

int main() {  //利用优先队列,即大根堆来解题
	int n;
	string str;
	while (cin >> n) {
		priority_queue<num> queue;
		int a, b;
		for (int i = 0; i < n; i++) {
			cin >> str;
			if (str == "Pop") {
				if (queue.empty()) {
					cout << "empty" << endl;
				}
				else {
					cout << queue.top().real << "+i" << queue.top().fiction << endl; //输出结果
					queue.pop();  //删除复数
					cout << "SIZE = " << queue.size() << endl;
				}

			}
			else {
				num n;
				scanf("%d+i%d", &a, &b);
				n.real = a;
				n.fiction = b;
				queue.push(n);
				cout << "SIZE = " << queue.size() << endl;

			}


		}
	}
}