我也是唐非得用暴力
结果wa两个
错在了字典序排列上,思路有点乱
代码如下
#include<bits/stdc++.h>
#define q 105
using namespace std;
string a[q];
int b[q];
string ans1;
int ans2;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(int i=1;i<=n;i++){
int maxn=-1;
string s="zzzzzzzzzzzzz";
int now;
for(int j=1;j<=n;j++){
if(b[j]>maxn){
maxn=b[j];
now=j;
s=a[j];
}
if(b[j]==maxn){
int flag=-1;
int len=min(a[j].size(),s.size());
for(int k=0;k<len;k++){
if(a[j][k]<s[k]){
flag=1;
break;
}
if(a[j][k]>s[k]){
flag=0;
break;
}
}
if(flag=-1)
if(a[j].size()<s.size())
flag=1;
if(flag)
{
maxn=b[j];
s=a[j];
}
}
}
cout<<a[now]<<' '<<b[now]<<endl;
b[now]=-1;
}
}