1 solutions

  • 0
    @ 2025-11-5 16:34:21

    C++ :

    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int k,n,a[101],c[101];
        char st[101];
        scanf("%d",&k);
        scanf("%s",st);
        n=strlen(st);
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++)
        {
            if(st[i]>='0' && st[i]<='9') a[i]=st[i]-'0';
            else if(st[i]>='A' && st[i]<='Z') a[i]=st[i]-55;
        }
        int step=0,b=1;
        for(int i=0;i<=(n/2)-1;i++)
            if(a[i]!=a[n-i-1]) b=0;
        while(b==0)
        {
            step++;
            for(int i=0;i<n;i++)
                c[i]=a[n-i-1];
            for(int i=0;i<n;i++)
            {
                a[i]+=c[i];
                if(a[i]>=k)
                {
                    a[i]-=k;
                    a[i+1]++;
                }
            }
            if(a[n+1-1]>0) n++;
            b=1;
            for(int i=0;i<=(n/2)-1;i++)
                if(a[i]!=a[n-i-1]) b=0;
            if(step>=30) {printf("Impossible!");
            return 0;}
        }
        printf("STEP=%d",step);
        return 0;
    }
    
    • 1

    Information

    ID
    17870
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By