#include
#include
using namespace std;
bool is_A_smaller_than_B(string A, string B) {
if(A.size() < B.size()) {
return true;
}
if(A.size() > B.size()) {
return false;
}
for(int i = 0; i < (int) A.size(); i++) {
if(A[i] < B[i]) {
return true;
}
if(A[i] > B[i]) {
return false;
}
}
return false;
}
string subtract_big_integer(string A, string B) {
if(is_A_smaller_than_B(A, B)) {
swap(A, B);
}
int sz_a = (int)A.size() - 1;
int sz_b = (int)B.size() - 1;
int carry = 0;
string diff = "";
while(sz_a >= 0 and sz_b >= 0) {
int digit_a = (A[sz_a] - '0');
int digit_b = (B[sz_b] - '0');
int razlika = digit_a - digit_b - carry;
if(razlika < 0) {
razlika += 10;
carry = 1;
}
else {
carry = 0;
}
diff += (razlika + '0');
sz_a--;
sz_b--;
}
while(sz_a >= 0) {
int digit_a = (A[sz_a] - '0');
int razlika = digit_a - carry;
if(razlika < 0) {
carry = 1;
razlika += 10;
}
else {
carry = 0;
}
diff += (razlika + '0');
}
reverse(diff.begin(), diff.end());
return diff;
}
int main()
{
cout << subtract_big_integer("98421", "19999") << endl;
return 0;
}