注意
使用结构体排序
每次需要更新集合的大小
注意size的大小写
版本1
#include<bits/stdc++.h>
using namespace std;
struct node{
int a,b;
}E[1005];
bool cmp(node a, node b){
int m1=a.a*a.a + a.b*a.b;
int m2=b.a*b.a + b.b*b.b;
if(m1 != m2) return m1 < m2;
else return a.b > b.b;
}
int main(){
int n,a,b,x;
while(cin>>n){
string s;
int k=0;
while(n--){
cin>>s;
if(s=="Pop"){
if(k==0) cout<<"empty"<<endl;
else{
sort(E,E+k,cmp);
cout<<E[k-1].a<<"+i"<<E[k-1].b<<endl;
k--;
cout<<"SIZE = "<<k<<endl;
}
}else{
cin>>s;
x=0;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
x = x*10 + s[i]-'0';
}else if(s[i]=='+'){
a=x;
x=0;
i++;
}
}
b = x;
E[k].a=a;
E[k].b=b;
k++;
cout<<"SIZE = "<<k<<endl;
}
}
}
return 0;
}