求助 样例不过!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct ps{
char n[500];
int bh;
}a[100];
int f(char x[500],char y[500])
{
int l=strlen(x);
for (int i=l-1;i>=1;i--)
{
if (x[i]>y[i])
return 1;
else if (x[i]<y[i])
return 2;
}
return 3;
}
int cmp(ps i,ps j)
{
int l1=strlen(i.n);
int l2=strlen(i.n);
int v=f(i.n,j.n);
return(l1>l2&&j.n<i.n||l1<l2&&i.n<j.n||l1==l2&&v==1&&i.n>j.n||l1==l2&&v==2&&i.n<j.n||l1==l2&&v==3&&i.n>j.n);
}
int main()
{
int n,m,x,y,i,j,z=0;
cin>>n;
for (i=1;i<=n;i++)
{
scanf("%s",&a[i].n);
a[i].bh=i;
}
sort(a+1,a+1+n,cmp);
cout<<a[n].n;
return 0;
}
样例这样
5
98765
12365
87954
1022356
985678
3
87954