很水的一道题,但用到了一些我没见过的知识,第一次结构体排序还可以这么写。。。
原题链接:https://www.luogu.org/problem/P1781
#include <bits/stdc++.h>
using namespace std;
struct qq
{
int id;
string s;
int l;
}q[1000];
bool cmp(qq a,qq b) //才知道结构体排序还能这么写 :guai:
{
if(a.l>b.l) //如果前一个数长度比后一个大,则不交换
{return 1;} //返回值为1则不交换
if(a.l==b.l&&a.s>b.s) //原来string类型的可以直接比较 :guai:
{return 1;}
return 0;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{cin>>q[i].s;
q[i].l=q[i].s.size(); //了解了string求字符串长度要用s.size()而不是strlen
q[i].id=i+1;}
sort(q,q+n,cmp);
cout<<q[0].id<<endl;
cout<<q[0].s<<endl;
return 0;
}
好
好
666