import
java.io.*;
import
java.lang.*;
import
java.util.*;
public
class
Main
{
static
String sumBig(String a, String b)
{
if
(a.length() > b.length()) {
String c = a;
a = b;
b = c;
}
String str =
""
;
int
n1 = a.length(), n2 = b.length();
int
diff = n2 - n1;
int
carry =
0
;
for
(
int
i = n1 -
1
; i >=
0
; i--) {
int
sum
= ((a.charAt(i) -
'0'
)
+ (b.charAt(i + diff) -
'0'
) + carry);
str += (
char
)(sum %
10
+
'0'
);
carry = sum /
10
;
}
for
(
int
i = n2 - n1 -
1
; i >=
0
; i--) {
int
sum = ((b.charAt(i) -
'0'
) + carry);
str += (
char
)(sum %
10
+
'0'
);
carry = sum /
10
;
}
if
(carry !=
0
)
str += (
char
)(carry +
'0'
);
String rev =
""
;
for
(
int
i = str.length() -
1
; i >=
0
; i--)
rev = rev + str.charAt(i);
return
rev;
}
static
String complement9(String v)
{
String complement =
""
;
for
(
int
i =
0
; i < v.length(); i++) {
int
x =
'9'
- v.charAt(i) +
'0'
;
complement += (
char
)x;
}
return
complement;
}
static
String subtract(String a, String b)
{
if
(a.length() < b.length()) {
String c = a;
a = b;
b = c;
}
int
l1 = a.length(), l2 = b.length();
int
diffLen = l1 - l2;
for
(
int
i =
0
; i < diffLen; i++) {
b =
"0"
+ b;
}
String c = sumBig(a, complement9(b));
if
(c.length() > a.length()) {
char
bit1 = c.charAt(
0
);
String bit =
""
;
bit += bit1;
StringBuilder sb =
new
StringBuilder(c);
sb.deleteCharAt(
0
);
c = sb.toString();
c = sumBig(c, bit);
return
c;
}
else
{
return
complement9(c);
}
}
public
static
void
main(String[] args)
{
String str1 =
"12345678987654321"
;
String str2 =
"22324324343"
;
System.out.println(subtract(str1, str2));
}
}