64,648
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
struct stu
{
string name;
int sc;
};
vector<stu> v;
bool cmp(stu a,stu b)
{
return a.sc>b.sc;
}
int main()
{
int n,i,flag;
string str;int s;
while(scanf("%d",&n)!=EOF)
{
v.clear();
v.resize(n);
//memset(v,)
for(i=0;i<n;i++)
{
cin>>v[i].name>>v[i].sc;
}
stable_sort(v.begin(),v.end(),cmp);//先排序,在和它的对比
flag=0;
for(i=0;i<n;i++)
{
cin>>str>>s;
if(flag!=0)
continue;
if(s!=v[i].sc)
flag=1;//不对应,说明其算法错误
else
if(str!=v[i].name)//分数对应,但名字不对应,说明不稳定
flag=2;
}
if(flag==0)
cout<<"Right"<<endl;
else
{
if(flag==1)
cout<<"Error"<<endl;
if(flag==2)
cout<<"Not Stable"<<endl;
for(i=0;i<n;i++)
cout<<v[i].name<<' '<<v[i].sc<<endl;
}
}
return 0;
}