Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Jokul

Problemset: บวกเลขฐาน

Language: c

Time: 0.001 second

Submitted On: 2025-10-11 14:48:00

#include<stdio.h>
#include<string.h>
int main()
{
   int base;
    scanf("%d",&base);
    char num1[1000],num2[1000];
    scanf("%s",num1);
    scanf("%s",num2);
    int a,b;
    a=strlen(num1);
    b=strlen(num2);
    int c=a-1,d=b-1;
   int n1[a],n2[b],l;
   if(a>b)
   {
       l=a+1;
   }
   else if(a<=b)
   {
       l=b+1;
   }
   int sum[l];
   for(int i=0;i<=l-1;i++)
   {
       sum[i]=0;
   }
   for(int i=0;i<a;i++)
   {
    if(num1[i]<='9')
        {
            n1[i]=(int)(num1[i]-'0');
        }
        else
        {
            n1[i]=(int)(num1[i]-'A'+10);
        }
   }
   for(int i=0;i<b;i++)
   {
        if(num2[i]<='9')
        {
            n2[i]=(int)(num2[i]-'0');
        }
        else
        {
            n2[i]=(int)(num2[i]-'A'+10);
        }
   }
   /*
   for(int i=0;i<a;i++)
   {
        printf("%d ",n1[i]);
   }
   printf("\n");
   for(int i=0;i<b;i++)
   {
        printf("%d ",n2[i]);
   }
    printf("\n");*/
    for(int i=l-1;i>=1;i--)
    {
        sum[i]=sum[i]+n1[c];
        c--;
        if(c==-1)
        {
            break;
        }
    }
    for(int i=l-1;i>=1;i--)
    {
        sum[i]=sum[i]+n2[d];
        d--;
        if(d==-1)
        {
            break;
        }
    }
    for(int i=l-1;i>0;i--)
    {
        if(sum[i]>=base)
        {
            sum[i]=sum[i]%base;
            sum[i-1]++;
        }
    }
    char result[l];
    for(int i=0;i<l;i++)
    {
       if(sum[i]<10)
       {
           result[i]=sum[i]+'0';
       }
       else if(sum[i]>=10)
       {
           result[i]=sum[i]-10+'A';
       }
    }
    /*for(int i=0;i<l;i++)
    {
        printf("%d",sum[i]);
    }
    printf("\n");*/
     if(result[0]=='1')
    {
        printf("1");
    }
    for(int i=1;i<l;i++)
    {
        printf("%c",result[i]);
    }

}