80分代码求助
查看原帖
80分代码求助
666796
Rainsleep楼主2022/5/9 17:46
#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

我把第测试点里的第四个票数和第六个票数单独测试了一下,发现当二者输入顺序调换时,输出就正确了。

2022/5/9 17:46
加载中...