View Code of Problem 3689

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;

int main() {
	int T; cin >> T;
	int v = 0;
	while (T--) {
		string s1, s2; cin >> s1 >> s2;
		string flag("");
		if (s1.size() < s2.size() || s1.size() == s2.size() && s1 < s2) {
			swap(s1, s2);
			flag = "-";
		}
		int len = s1.size() - s2.size();
		for (int i = 0; i < len; i++)
			s2 = '0' + s2;
		int k = 0;
		for (int i = s1.size() - 1; i >= 0; i--) {
			if (s1[i] - s2[i] + k >= 0) {
				s1[i] = '0'+s1[i] - s2[i] + k;
				k = 0;
			}
			else {
				s1[i] = '0'+s1[i] - s2[i] + k + 10;
				k = -1;
			}
		}
		for (int i = 0; i < s1.size() - 1; i++)
			if (s1[i] == '0') s1.erase(0,1);
			else break;
		cout << "Case #"<<++v<<":\n"<<flag<< s1 << endl;
	}
}

Double click to view unformatted code.


Back to problem 3689