#include <bits/stdc++.h>
using namespace std;
struct Big {
int len, num[10105];
void Number (string s) {
len = s.size ();
for (int i = 0; i < len; i ++)
num[s.size () - i] = s[i] - '0';
}
bool operator < (Big a) const {
if (len != a.len)
return len < a.len;
for (int i = len; i >= 1; i --) {
if (num[i] != a.num[i])
return num[i] < a.num[i];
}
return false;
}
void Minus (Big a, Big b) {
if (a < b) {
Big c;
c.Minus (b, a);
len = c.len;
num[len + 1] = -1;
for (int i = 1; i <= len; i ++)
num[i] = c.num[i];
}
else {
len = max (a.len, b.len);
for (int i = 1; i <= len; i ++) {
num[i + 1] --;
num[i] += 10 + a.num[i] - b.num[i];
num[i + 1] += num[i] / 10;
num[i] %= 10;
}
while (len > 1 && num[len] == 0)
-- len;
}
}
void Print () {
if (num[len + 1] == -1)
cout << '-';
for (int i = len; i >= 1; i --)
cout << num[i];
}
};
int main () {
ios :: sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string x, y;
cin >> x >> y;
Big a, b;
a.Number(x);
b.Number(y);
Big c;
c.Minus (a, b);
c.Print ();
return 0;
}
曾经100分,和那个对拍了一下,结果对对拍了半个小时没有一个不对。