Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- //
- #define ll long long
- #define ull unsigned long long
- #define mx 100010
- #define mod 1000000007
- #define inf INT_MAX
- #define pi acos(-1)
- #define endl '\n'
- #define pb push_back
- #define pll pair<ll, ll>
- #define Fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
- //
- int main() {
- ll t;
- cin >> t;
- while (t--) {
- string a, sum;
- cin >> a >> sum;
- sum = "0" + sum;
- ll j = a.length() - 1;
- vector<ll> vec;
- bool possible = true;
- for (ll i = sum.length() - 1; i >= 1; i--) {
- if (j == -1) {
- ll temp = sum[i] - '0';
- vec.pb(temp);
- continue;
- }
- ll tempA = a[j] - '0', tempSum = sum[i] - '0';
- if (a[j] == sum[i] && a[j] == '0') vec.pb(0);
- else if (tempA == tempSum) {
- vec.pb(0);
- }
- else if (tempSum > tempA) vec.pb(tempSum - tempA);
- else if (tempSum < tempA) {
- if (sum[i - 1] != '1') {
- possible = false;
- break;
- }
- vec.pb(10 + tempSum - tempA);
- i--;
- }
- j--;
- }
- if (!possible || j != -1) cout << -1 << endl;
- else {
- bool found = false;
- vector<ll>::iterator it = vec.end() - 1;
- for (it = vec.end() - 1; ; it--) {
- if (*it != 0) break;
- //cout << *it << endl;
- vec.erase(it);
- if (it == vec.begin()) break;
- }
- if (vec.size() == 0) {
- cout << 0 << endl;
- continue;
- }
- it = vec.end() - 1;
- for (; ; it--) {
- if (it == vec.end() - 1 && *it == 0) continue;
- cout << *it;
- if (it == vec.begin()) break;
- }
- cout << endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment