Simple and 100% beats solution
Intuition ApproachWe have two pointers in which one moves from left and other from right, while doing this we concatenate the numbera concatenate b is given bya
# Intuition Approach
<!-- Describe your first thoughts on how to solve this problem. -->
We have two pointers in which one moves from left and other from right, while doing this we concatenate the number 

a concatenate b is given by 

a * number of places to move for b + b

number of places to move for b is given by the 10 power the number of digits in b, so that adding b to a doesnt affect a. 

<!-- Describe your approach to solving the problem. -->


# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->
O(n)
- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->
O(1)
# Code
```cpp []
class Solution {
public:

    long long num_digits(int value)
    {
        int num = 1;
        while(value)
        {
            value = value / 10;
            num *= 10;
        }
        return num;
    }

    long long findTheArrayConcVal(vector<int>& nums) {
        int n = nums.size();
        int left = 0;
        int right = n - 1;

        long long sum = 0;

        while(left <= right)
        {
            if(left == right)
            {
                sum += nums[left];
            }
            else
            {
                sum += nums[left] * num_digits(nums[right]) + nums[right];
            }
            left ++;
            right --;
        }

        return sum;
    }
};
```
['Math', 'Two Pointers', 'C++']