fahad005

Untitled

Dec 20th, 2021
989
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. //
  4. #define ll long long
  5. #define ull unsigned long long
  6. #define mx 100010
  7. #define mod 1000000007
  8. #define inf INT_MAX
  9. #define pi acos(-1)
  10. #define endl '\n'
  11. #define pb push_back
  12. #define pll pair<ll, ll>
  13. #define Fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
  14. //
  15. int main() {
  16.     ll t;
  17.     cin >> t;
  18.  
  19.     while (t--) {
  20.         string a, sum;
  21.         cin >> a >> sum;
  22.  
  23.         sum = "0" + sum;
  24.         ll j = a.length() - 1;
  25.         vector<ll> vec;
  26.         bool possible = true;
  27.         for (ll i = sum.length() - 1; i >= 1; i--) {
  28.  
  29.             if (j == -1) {
  30.                 ll temp = sum[i] - '0';
  31.                 vec.pb(temp);
  32.                 continue;
  33.             }
  34.  
  35.             ll tempA = a[j] - '0', tempSum = sum[i] - '0';
  36.  
  37.             if (a[j] == sum[i] && a[j] == '0') vec.pb(0);
  38.             else if (tempA == tempSum) {
  39.                 vec.pb(0);
  40.             }
  41.             else if (tempSum > tempA) vec.pb(tempSum - tempA);
  42.             else if (tempSum < tempA) {
  43.                 if (sum[i - 1] != '1') {
  44.                     possible = false;
  45.                     break;
  46.                 }
  47.                 vec.pb(10 + tempSum - tempA);
  48.                 i--;
  49.             }
  50.             j--;
  51.         }
  52.  
  53.         if (!possible || j != -1) cout << -1 << endl;
  54.         else {
  55.             bool found = false;
  56.             vector<ll>::iterator it = vec.end() - 1;
  57.             for (it = vec.end() - 1; ; it--) {
  58.                 if (*it != 0) break;
  59.                 //cout << *it << endl;
  60.                 vec.erase(it);
  61.                 if (it == vec.begin()) break;
  62.             }
  63.             if (vec.size() == 0) {
  64.                 cout << 0 << endl;
  65.                 continue;
  66.             }
  67.  
  68.             it = vec.end() - 1;
  69.             for (; ; it--) {
  70.                 if (it == vec.end() - 1 && *it == 0) continue;
  71.                 cout << *it;
  72.                 if (it == vec.begin()) break;
  73.             }
  74.             cout << endl;
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment