1 条题解

  • 0
    @ 2025-10-8 16:49:41
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    struct dzs// dzs就是大整数的首字母,随便命名的 
    {
        char s[105];int len;//s数组用来表示一个大整数的每一位,len表示一个大整数的位数 
    }a[N];
     
    bool cmp(dzs n1,dzs n2)//自定义的比较函数,return n1<n2; 
    {
        if(n1.len!=n2.len) return n1.len<n2.len;
        for(int i=0;i<n1.len;i++) if(n1.s[i]!=n2.s[i])return n1.s[i]<n2.s[i];
        return 0;
    }
    
    int main()
    {
        int n;scanf("%d", &n);
        for(int i=1;i<=n;i++)scanf("%s",a[i].s),a[i].len=strlen(a[i].s);
        sort(a+1,a+1+n,cmp);
        for(int i=1;i<=n;i++)printf("%s\n",a[i].s);
        return 0;
    }
    
    • 1

    信息

    ID
    342
    时间
    3000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    308
    已通过
    78
    上传者