求调
#include <bits/stdc++.h>
using namespace std;
string a, b, ans = "";
int flag;
bool cmp(string a, string b) {
if(a.size() != b.size())
return a.size() < b.size();
else {
for (int i = 0; i < a.size(); i ++ ) {
if(a[i] != b[i])
return a[i] < b[i];
}
return false;
}
}
void minuss(string a, string b) {
if(cmp(a, b)) {
swap(a, b);
flag = 1;
}
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
for (int i = 0; i < b.size(); i ++ ) {
if(a[i] < b[i]) {
a[i + 1] -= 1;
ans += '0' + a[i] - b[i] + 10;
}
else {
ans += '0' + a[i] - b[i];
}
}
if(a.size() > b.size()) {
for (int i = b.size(); i < a.size(); i ++ )
ans += a[i];
}
//去前导零
int idx = ans.size() - 1;
while(ans[idx] == '0' && idx) {
idx--;
}
ans = ans.substr(0, idx + 1);
if (flag)
{
cout << '-';
}
for (int i = ans.size() - 1; i >= 0; i --) {
cout << ans[i];
}
}
int main()
{
cin >> a >> b;
minuss(a, b);
return 0;
}