1 条题解

  • 0
    @ 2025-2-14 21:11:41

    C :

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int i, j, p, t, n, max, l;
        char s[103];
        scanf("%d", &t);
        while(t--)
        {
            scanf("%s%d", s, &n);
            l = strlen(s);
            for(i=p=0; i<l-n; i++)
            {
                max = -1000;
                for(j=p; j<=n+i; j++)
                {
                    if(s[j]-'0' > max)
                    {
                        max = s[j]-'0';
                        p = j+1;
                    }
                }
                printf("%d", max);
            }
            puts("");
        }
        return 0;
    }
    
    

    C++ :

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    
    using namespace std ;
    
    char str[1000] ;
    
    int f( int a , int b ) {
        char max = 0 ;
        int p = -1 ;
        for( int i = a ; i <= b ; i ++ ) {
            if( max < str[i] ) {
                max = str[i] ;
                p = i ;
            }
        }
        printf("%c" , max ) ;
        return p + 1 ;
    }
    
    int main() {
    
        int T ;
        scanf("%d" , &T ) ;
        while( T -- ) {
            int k ;
            scanf("%s%d" , str , &k ) ;
            int len = strlen( str ) ;
            int begin = 0 , end = k ;
            k = len - k ;
            for( int i = 0 ; i < k ; i ++ ) {
                begin = f( begin , end ) + 1 ;
                end += 1 ;
            }
            printf("\n") ;
        }
    
        return 0 ;
    }
    
    
    • 1

    信息

    ID
    697
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者