#include<iostream>#include<vector>usingnamespace std;boolcmp(vector<int>&A,vector<int>&B){
if(A.size()!=B.size())return A.size()>B.size();for(int i=A.size()-1;i>=0;i--)if(A[i]!=B[i])return A[i]>B[i];returntrue;}
vector<int>sub(vector<int>&A,vector<int>&B){
vector<int> C;for(int i=0,t=0;i<A.size();i++){
t=A[i]-t;if(i<B.size()) t-=B[i];//如果t为负则需要借位
C.push_back((t+10)%10);//这个公式满足了t为负数 和 正数的情况 if(t<0) t=1;//与第20行相对应,小于0了话,就得进行借位 else t=0;}while(C.size()>1&&C.back()==0) C.pop_back();//当有前导0时需要把其去掉, C.back()为C的最后一位, C.pop_back()是把最后一位删除 return C;}intmain(){
string a,b;
vector<int> A,B;
cin>>a>>b;for(int i = a.size()-1; i >=0; i --) A.push_back(a[i]-'0');for(int i = b.size()-1; i >=0; i --) B.push_back(b[i]-'0');
vector<int> C;if(cmp(A,B)) C=sub(A,B);//判断是因为要满足大的数减小的数else C=sub(B,A), cout<<'-';//逗号相当于两步都执行for(int i = C.size()-1; i >=0; i --) cout << C[i];
cout << endl;}
// C = A - B, 满足A >= B, A >= 0, B >= 0
vector<int>sub(vector<int>&A, vector<int>&B){
vector<int> C;for(int i =0, t =0; i < A.size(); i ++){
t = A[i]- t;if(i < B.size()) t -= B[i];
C.push_back((t +10)%10);if(t <0) t =1;else t =0;}while(C.size()>1&& C.back()==0) C.pop_back();return C;}