#include <iostream>
using namespace std;
void sumOfTwoArrays(int arr1[], int size1, int arr2[], int size2, int sumArr[])
{
int maxLen;
int* tArry;
int l;
if(size1>size2) { maxLen = size1; tArry = arr1; l = size1 - size2; }
else { maxLen = size2; tArry = arr2; l = size2 - size1; }
int carry = 0;
while(size1 && size2)
{
carry += arr1[--size1] + arr2[--size2];
sumArr[maxLen--] = carry%10;
carry /= 10;
}
while(l){
carry += tArry[--l];
sumArr[maxLen--] = carry%10;
carry /= 10;
}
sumArr[maxLen] = carry;
}
void printArray(int a[], int l)
{
for(int i=0; i<l; i++) cout<< a[i] << " | ";
cout<<endl;
}
int main() {
int a[] = {9,9,9,9,9};
int b[] = {1};
int l1 = sizeof(a) / sizeof(int), l2 = sizeof(b)/sizeof(int);
int l3 = ((l1 > l2) ? l1 : l2) + 1;
int *c = new int[l3];
sumOfTwoArrays(a, l1, b, l2, c);
printArray(c, l3);
delete [] c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzdW1PZlR3b0FycmF5cyhpbnQgYXJyMVtdLCBpbnQgc2l6ZTEsIGludCBhcnIyW10sIGludCBzaXplMiwgaW50IHN1bUFycltdKQp7CiAgICBpbnQgbWF4TGVuOwogICAgaW50KiB0QXJyeTsKICAgIGludCBsOwogICAgaWYoc2l6ZTE+c2l6ZTIpIHsgbWF4TGVuID0gc2l6ZTE7IHRBcnJ5ID0gYXJyMTsgbCA9IHNpemUxIC0gc2l6ZTI7IH0KICAgIGVsc2UgeyBtYXhMZW4gPSBzaXplMjsgdEFycnkgPSBhcnIyOyBsID0gc2l6ZTIgLSBzaXplMTsgfQogICAgCiAgICBpbnQgY2FycnkgPSAwOwogICAgCiAgICB3aGlsZShzaXplMSAmJiBzaXplMikKICAgIHsKICAgICAgICBjYXJyeSArPSBhcnIxWy0tc2l6ZTFdICsgYXJyMlstLXNpemUyXTsKICAgICAgICBzdW1BcnJbbWF4TGVuLS1dID0gY2FycnklMTA7CiAgICAgICAgY2FycnkgLz0gMTA7CiAgICB9CiAgICAKICAgIHdoaWxlKGwpewogICAgICAgIGNhcnJ5ICs9IHRBcnJ5Wy0tbF07CiAgICAgICAgc3VtQXJyW21heExlbi0tXSA9IGNhcnJ5JTEwOwogICAgICAgIGNhcnJ5IC89IDEwOwogICAgfQogICAgc3VtQXJyW21heExlbl0gPSBjYXJyeTsKfQoKdm9pZCBwcmludEFycmF5KGludCBhW10sIGludCBsKQp7Cglmb3IoaW50IGk9MDsgaTxsOyBpKyspIGNvdXQ8PCBhW2ldIDw8ICIgfCAiOwoJCgljb3V0PDxlbmRsOwp9CgppbnQgbWFpbigpIHsKCWludCBhW10gPSB7OSw5LDksOSw5fTsKCWludCBiW10gPSB7MX07CglpbnQgbDEgPSBzaXplb2YoYSkgLyBzaXplb2YoaW50KSwgbDIgPSBzaXplb2YoYikvc2l6ZW9mKGludCk7CglpbnQgbDMgPSAoKGwxID4gbDIpID8gbDEgOiBsMikgKyAxOwoJaW50ICpjID0gbmV3IGludFtsM107CglzdW1PZlR3b0FycmF5cyhhLCBsMSwgYiwgbDIsIGMpOwoJcHJpbnRBcnJheShjLCBsMyk7CglkZWxldGUgW10gYzsKCXJldHVybiAwOwp9