#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;
}