class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        if(!A)
            A = B;
        if(!B)
            return;
        int* p_a = A + m - 1;
        int* p_b = B + n - 1;
        int* p = A + m + n - 1;
        while(p_a >= A && p_b >= B){
            if(*p_a > *p_b)
                *p-- = *p_a--;
            else
                *p-- = *p_b--;
        }
        while(p_a >= A)
            *p-- = *p_a--;
        while(p_b >= B)
            *p-- = *p_b--;
    }
};