/*
#include <stdio.h>
#include <string.h>
int s[101]={};
int s1[101]={};
int s2[101]={};
int t=0, t1=0, t2=0;
void push(int x)
{
s[t]=x;
t++;
}
void push1(int z)
{
s1[t1]=z;
t1++;
}
void push2(int v)
{
s2[t2]=v;
t2++;
}
void pop()
{
t--;
if (t<0)
{
t=0;
}
}
void pop1()
{
t1--;
if (t1<0)
{
t1=0;
}
}
void pop2()
{
t2--;
if (t2<0)
{
t2=0;
}
}
int main()
{
char a[101]={};
char b[101]={};
int c=0, g;
scanf("%s", a);
scanf("%s", b);
// 1. 스택에 숫자 준비
for (int i=strlen(a)-1 ; i>=0 ; i--)
{
push(a[i]-'0');
}
for (int i=strlen(b)-1 ; i>=0 ; i--)
{
push1(b[i]-'0');
}
if (strlen(a)>strlen(b))
{
g= strlen(a);
}
else
{
g= strlen(b);
}
// 2. 각 스택에서 숫자 꺼내서 계산
for (int i=0 ; i<g ; i++)
{
if (s[i]+s1[i]+c>9)
{
push2((s[i]+s1[i]+c)%10);
c=1;
}
else
{
push2(s[i]+s1[i]+c);
c=0;
}
}
if(c==1)
{
push2(1);
g++;
}
// 3. s2를 모두 pop해서 출력
for (int i=g-1 ; i>=0 ; i--)
{
printf("%d", s2[i]);
}
}
#include <stdio.h>
#include <string.h>
int s[101]= {};
int s1[101]= {};
int s2[101]= {};
int t=0, t1=0, t2=0;
void push(int x)
{
s[t]=x;
t++;
}
void push1(int z)
{
s1[t1]=z;
t1++;
}
void push2(int v)
{
s2[t2]=v;
t2++;
}
void pop()
{
t--;
if (t<0)
{
t=0;
}
}
void pop1()
{
t1--;
if (t1<0)
{
t1=0;
}
}
void pop2()
{
t2--;
if (t2<0)
{
t2=0;
}
}
int main()
{
char a[101]= {};
char b[101]= {};
int c=0, g;
scanf("%s", a);
scanf("%s", b);
// 1. 스택에 숫자 준비
for (int i=strlen(a)-1 ; i>=0 ; i--)
{
push(a[i]-'0');
}
for (int i=strlen(b)-1 ; i>=0 ; i--)
{
push1(b[i]-'0');
}
if (strlen(a)>strlen(b) || (strlen(a)==strlen(b) && strcmp(a, b) >= 0))
{
g= strlen(a);
for (int i=0 ; i<g ; i++)
{
if (s[i]-s1[i]-c<0)
{
push2((10+(s[i]-s1[i])-c));
c=1;
}
else
{
push2(s[i]-s1[i]-c);
c=0;
}
}
}
else if (strlen(b)>strlen(a) || (strlen(a)==strlen(b) && strcmp(a, b) < 0))
{
g= strlen(b);
for (int i=0 ; i<g ; i++)
{
if (s1[i]-s[i]-c<0)
{
push2((10+(s1[i]-s[i])-c));
c=1;
}
else
{
push2(s1[i]-s[i]-c);
c=0;
}
}
printf("-");
}
// 2. 각 스택에서 숫자 꺼내서 계산
while (s2[t2-1]==0)
{
if(t2==1)
{
break;
}
pop2();
g--;
}
// 3. s2를 모두 pop해서 출력
for (int i=g-1 ; i>=0 ; i--)
{
printf("%d", s2[i]);
}
}
*/