#include<bits/stdc++.h>
using namespace std;
int pos(1);
int n;
char ticket[20][110];
int main()
{
scanf("%d",&n);
scanf("%s",ticket[1]);
for(int i(2);i<=n;++i)
{
scanf("%s",ticket[i]);
int lena=strlen(ticket[i]);
int lenb=strlen(ticket[pos]);
if(lena<lenb)
continue;
else if(lena>lenb)
pos=i;
else
for(int j(0);j<=lenb;++j)
if((int)ticket[i][j]-'0'>(int)ticket[pos][j]-'0')
{
pos=i;
break;
}
}
printf("%d\n",pos);
printf("%s\n",ticket[pos]);
//cout<<ticket[pos];
return 0;
}
自己反复检查了几遍都没有发现什么逻辑上的问题, 于是我测试了一下寄的测试点,如下:
Sample Input:
7
6791385765449865851630484098561093867193
6791385765405861305476138956183659819548
6791385765448765481033867082657092835470
6791385765476183659186548165418634013875
6791385765413054861086540816508058173710
6365470813654816508136547081654108365108
36571811836547138541
Sample Output:
4
6791385765476183659186548165418634013875
My Output:
6
6365470813654816508136547081654108365108
我把第测试点里的第四个票数和第六个票数单独测试了一下,发现当二者输入顺序调换时,输出就正确了。