#include <stdio.h>
#define LEN 100
void sum(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length) {
int carry = 0;
int i = len1 - 1;
int j = len2 - 1;
int k = 0;
while (i >= 0 || j >= 0 || carry) {
int digit1 = (i >= 0) ? buff1[i] : 0;
int digit2 = (j >= 0) ? buff2[j] : 0;
int sum = digit1 + digit2 + carry;
result[k] = sum % 10;
carry = sum / 10;
i--;
j--;
k++;
}
*result_length = k;
for (int l = 0; l < k / 2; l++) {
int temp = result[l];
result[l] = result[k - 1 - l];
result[k - 1 - l] = temp;
}
}
int compare(int *buff1, int len1, int *buff2, int len2) {
if (len1 > len2) {
return 1;
} else if (len1 < len2) {
return -1;
} else {
for (int i = 0; i < len1; i++) {
if (buff1[i] > buff2[i]) {
return 1;
} else if (buff1[i] < buff2[i]) {
return -1;
}
}
return 0;
}
}
void sub(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length) {
int comparison = compare(buff1, len1, buff2, len2);
if (comparison < 0) {
*result_length = 0;
return;
}
int borrow = 0;
int i = len1 - 1;
int j = len2 - 1;
int k = 0;
while (i >= 0) {
int digit1 = buff1[i];
int digit2 = (j >= 0) ? buff2[j] : 0;
int diff = digit1 - digit2 - borrow;
if (diff < 0) {
diff += 10;
borrow = 1;
} else {
borrow = 0;
}
result[k] = diff;
i--;
j--;
k++;
}
*result_length = k;
while (*result_length > 1 && result[*result_length - 1] == 0) {
(*result_length)--;
}
for (int l = 0; l < k / 2; l++) {
int temp = result[l];
result[l] = result[k - 1 - l];
result[k - 1 - l] = temp;
}
}
int main() {
int buff1[LEN], buff2[LEN], result_sum[LEN], result_sub[LEN];
int len1 = 0, len2 = 0, result_sum_length = 0, result_sub_length = 0;
int num;
while (scanf("%d", &num
) == 1) { if (num < 0 || num > 9) {
return 1;
}
buff1[len1++] = num;
if (len1 > LEN) {
return 1;
}
if (c == '\\n') {
break;
}
}
while (scanf("%d", &num
) == 1) { if (num < 0 || num > 9) {
return 1;
}
buff2[len2++] = num;
if (len2 > LEN) {
return 1;
}
}
sum(buff1, len1, buff2, len2, result_sum, &result_sum_length);
if (result_sum_length > 0) {
for (int i = 0; i < result_sum_length; i++) {
}
} else {
}
sub(buff1, len1, buff2, len2, result_sub, &result_sub_length);
if (result_sub_length > 0) {
for (int i = 0; i < result_sub_length; i++) {
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIExFTiAxMDAKCnZvaWQgc3VtKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMiwgaW50ICpyZXN1bHQsIGludCAqcmVzdWx0X2xlbmd0aCkgewogICAgaW50IGNhcnJ5ID0gMDsKICAgIGludCBpID0gbGVuMSAtIDE7CiAgICBpbnQgaiA9IGxlbjIgLSAxOwogICAgaW50IGsgPSAwOwoKICAgIHdoaWxlIChpID49IDAgfHwgaiA+PSAwIHx8IGNhcnJ5KSB7CiAgICAgICAgaW50IGRpZ2l0MSA9IChpID49IDApID8gYnVmZjFbaV0gOiAwOwogICAgICAgIGludCBkaWdpdDIgPSAoaiA+PSAwKSA/IGJ1ZmYyW2pdIDogMDsKICAgICAgICBpbnQgc3VtID0gZGlnaXQxICsgZGlnaXQyICsgY2Fycnk7CgogICAgICAgIHJlc3VsdFtrXSA9IHN1bSAlIDEwOwogICAgICAgIGNhcnJ5ID0gc3VtIC8gMTA7CgogICAgICAgIGktLTsKICAgICAgICBqLS07CiAgICAgICAgaysrOwogICAgfQoKICAgICpyZXN1bHRfbGVuZ3RoID0gazsKCiAgICBmb3IgKGludCBsID0gMDsgbCA8IGsgLyAyOyBsKyspIHsKICAgICAgICBpbnQgdGVtcCA9IHJlc3VsdFtsXTsKICAgICAgICByZXN1bHRbbF0gPSByZXN1bHRbayAtIDEgLSBsXTsKICAgICAgICByZXN1bHRbayAtIDEgLSBsXSA9IHRlbXA7CiAgICB9Cn0KCmludCBjb21wYXJlKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMikgewogICAgaWYgKGxlbjEgPiBsZW4yKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgaWYgKGxlbjEgPCBsZW4yKSB7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfSBlbHNlIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjE7IGkrKykgewogICAgICAgICAgICBpZiAoYnVmZjFbaV0gPiBidWZmMltpXSkgewogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYnVmZjFbaV0gPCBidWZmMltpXSkgewogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwogICAgfQp9Cgp2b2lkIHN1YihpbnQgKmJ1ZmYxLCBpbnQgbGVuMSwgaW50ICpidWZmMiwgaW50IGxlbjIsIGludCAqcmVzdWx0LCBpbnQgKnJlc3VsdF9sZW5ndGgpIHsKICAgIGludCBjb21wYXJpc29uID0gY29tcGFyZShidWZmMSwgbGVuMSwgYnVmZjIsIGxlbjIpOwogICAgaWYgKGNvbXBhcmlzb24gPCAwKSB7CiAgICAgICAgcHJpbnRmKCJuL2FcbiIpOwogICAgICAgICpyZXN1bHRfbGVuZ3RoID0gMDsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaW50IGJvcnJvdyA9IDA7CiAgICBpbnQgaSA9IGxlbjEgLSAxOwogICAgaW50IGogPSBsZW4yIC0gMTsKICAgIGludCBrID0gMDsKCiAgICB3aGlsZSAoaSA+PSAwKSB7CiAgICAgICAgaW50IGRpZ2l0MSA9IGJ1ZmYxW2ldOwogICAgICAgIGludCBkaWdpdDIgPSAoaiA+PSAwKSA/IGJ1ZmYyW2pdIDogMDsKICAgICAgICBpbnQgZGlmZiA9IGRpZ2l0MSAtIGRpZ2l0MiAtIGJvcnJvdzsKCiAgICAgICAgaWYgKGRpZmYgPCAwKSB7CiAgICAgICAgICAgIGRpZmYgKz0gMTA7CiAgICAgICAgICAgIGJvcnJvdyA9IDE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYm9ycm93ID0gMDsKICAgICAgICB9CgogICAgICAgIHJlc3VsdFtrXSA9IGRpZmY7CiAgICAgICAgaS0tOwogICAgICAgIGotLTsKICAgICAgICBrKys7CiAgICB9CgogICAgKnJlc3VsdF9sZW5ndGggPSBrOwoKICAgIHdoaWxlICgqcmVzdWx0X2xlbmd0aCA+IDEgJiYgcmVzdWx0WypyZXN1bHRfbGVuZ3RoIC0gMV0gPT0gMCkgewogICAgICAgICgqcmVzdWx0X2xlbmd0aCktLTsKICAgIH0KCiAgICBmb3IgKGludCBsID0gMDsgbCA8IGsgLyAyOyBsKyspIHsKICAgICAgICBpbnQgdGVtcCA9IHJlc3VsdFtsXTsKICAgICAgICByZXN1bHRbbF0gPSByZXN1bHRbayAtIDEgLSBsXTsKICAgICAgICByZXN1bHRbayAtIDEgLSBsXSA9IHRlbXA7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50IGJ1ZmYxW0xFTl0sIGJ1ZmYyW0xFTl0sIHJlc3VsdF9zdW1bTEVOXSwgcmVzdWx0X3N1YltMRU5dOwogICAgaW50IGxlbjEgPSAwLCBsZW4yID0gMCwgcmVzdWx0X3N1bV9sZW5ndGggPSAwLCByZXN1bHRfc3ViX2xlbmd0aCA9IDA7CiAgICBpbnQgbnVtOwoKICAgIHdoaWxlIChzY2FuZigiJWQiLCAmbnVtKSA9PSAxKSB7CiAgICAgICAgaWYgKG51bSA8IDAgfHwgbnVtID4gOSkgewogICAgICAgICAgICBwcmludGYoIm4vYVxuIik7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICBidWZmMVtsZW4xKytdID0gbnVtOwogICAgICAgIGlmIChsZW4xID4gTEVOKSB7CiAgICAgICAgICAgIHByaW50Zigibi9hXG4iKTsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQoKICAgICAgICBjaGFyIGMgPSBnZXRjaGFyKCk7CiAgICAgICAgaWYgKGMgPT0gJ1xcbicpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHdoaWxlIChzY2FuZigiJWQiLCAmbnVtKSA9PSAxKSB7CiAgICAgICAgaWYgKG51bSA8IDAgfHwgbnVtID4gOSkgewogICAgICAgICAgICBwcmludGYoIm4vYVxuIik7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICBidWZmMltsZW4yKytdID0gbnVtOwogICAgICAgIGlmIChsZW4yID4gTEVOKSB7CiAgICAgICAgICAgIHByaW50Zigibi9hXG4iKTsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgfQoKICAgIHN1bShidWZmMSwgbGVuMSwgYnVmZjIsIGxlbjIsIHJlc3VsdF9zdW0sICZyZXN1bHRfc3VtX2xlbmd0aCk7CiAgICBpZiAocmVzdWx0X3N1bV9sZW5ndGggPiAwKSB7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHRfc3VtX2xlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgcmVzdWx0X3N1bVtpXSk7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCJuL2FcbiIpOwogICAgfQoKICAgIHN1YihidWZmMSwgbGVuMSwgYnVmZjIsIGxlbjIsIHJlc3VsdF9zdWIsICZyZXN1bHRfc3ViX2xlbmd0aCk7CiAgICBpZiAocmVzdWx0X3N1Yl9sZW5ndGggPiAwKSB7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHRfc3ViX2xlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgcmVzdWx0X3N1YltpXSk7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==