#include<bits/stdc++.h>
using namespace std;
struct zt{
string str;
int x;
};
int f(string a,string b){
int c=a.length();
for(int i=1;i<=c;i++){
if(a[i]>b[i]){
return 1;
}else if(a[i]<b[i]){
return 0;
}
}
}
int main(){
int n;cin>>n;
zt a[n+1];
for(int i=1;i<=n;i++){
cin>>a[i].str;
a[i].x=i;
}
for(int i=n;i>=1;i++){
for(int j=1;j<i;j++){
if(a[j].str.length()>a[j+1].str.length()){
swap(a[j],a[j+1]);
}
else if(a[j].str.length()==a[j+1].str.length()){
if(f(a[j].str,a[j+1].str)){
swap(a[j],a[j+1]);
}
}
}
}
cout<<a[n].x<<endl<<a[n].str;
return 0;
}
哪里错了