Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<int> fun(string num) {
- vector<int> buf(num.size());
- for (int i = 0; i < num.size(); i++) {
- buf[i] = int(num[i]) - '0';
- }
- return buf;
- }
- bool comp(string num1, string num2) {
- if (num1.size() < num2.size()) return true;
- else if (num1.size() == num2.size()) {
- for (int i = 0; i < num1.size(); i++) {
- if (num2[i] > num1[i]) return true;
- else if (num1[i] > num2[i]) return false;
- }
- }
- return false;
- }
- int main() {
- bool is_neg = false;
- string num1, num2;
- cin >> num1 >> num2;
- if (comp(num1, num2)) {
- swap(num1, num2);
- is_neg = true;
- }
- vector<int> my1 = fun(num1);
- vector<int> my2 = fun(num2);
- vector<int> ans(num1.size(), 0);
- int i = 0;
- for (i; i < num2.size(); i++) {
- ans[ans.size() - 1 - i] += my1[my1.size() - 1 - i] - my2[my2.size() - 1 - i];
- if (ans[ans.size() - 1 - i] < 0) {
- ans[ans.size() - 1 - i] += 10;
- ans[ans.size() - 2 - i]--;
- }
- }
- for (i; i < num1.size(); i++) {
- if (i != ans.size() - 1 && ans[ans.size() - 1 - i] < 0) {
- ans[ans.size() - 2 - i]--;
- ans[ans.size() - 1 - i] += 10;
- }
- ans[ans.size() - 1 - i] += my1[my1.size() - 1 - i];
- }
- if (is_neg) cout << "-";
- bool is_st = false;
- for (i = 0; i < ans.size(); i++) {
- if (!(ans[i] == 0 && !is_st)) {
- cout << ans[i];
- is_st = true;
- }
- }
- if (!is_st) cout << 0;
- //system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement