方法1:
#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
int id,ls;
string c;
} pr[110];
bool cmp(node x,node y)
{
if(x.ls == y.ls) {if(x.c > y.c) return x.c > y.c;}
else return x.ls > y.ls;
}
int main()
{
cin >> n;
for(int i = 1;i <= n;i++)
{
pr[i].id = i;
cin >> pr[i].c;
pr[i].ls = pr[i].c.size();
}
sort(pr+1,pr+n+1,cmp);
cout<<pr[1].id<<endl<<pr[1].c<<endl;
return 0;
}
以上为sort板ans,AC
方法二:
#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
int id,ls;
string s;
} pr[10010],maxn;
int main()
{
cin >> n;
for(int i = 1;i <= n;i++)
{
pr[i].id = i;
cin >> pr[i].s;
pr[i].ls = pr[i].s.size();
}
maxn = pr[1];
for(int i = 2;i <= n;i++)
{
if(pr[i].ls > maxn.ls)
{
maxn = pr[i];
}
else if(pr[i].ls == maxn.ls)
{
for(int j = 0;j < pr[i].ls;j++)
{
if(pr[i].s[j] > maxn.s[j])
{
maxn = pr[i];
break;
}
}
}
else continue;
}
cout<<maxn.id<<endl;
cout<<maxn.s<<endl;
return 0;
}
这是为何,请各位指教。