let countReverse = 0;
const kmod = 1000000007;
function InversePairs(data)
{    
    mergeSort(data);
    return countReverse;
}
function mergeSort(arr, len = arr.length){
    const mid = Math.floor(len/2);
    if(len <= 1){
        return arr;
    }
    const left = mergeSort(arr.slice(0 , mid))
    const right = mergeSort(arr.slice(mid , len))
    console.log("left , right",left , right)
    const res = mergeOrderly(left,right);
    console.log("res",res)
    return res;
}
function mergeOrderly(left,right){
    let i = 0, j = 0;
    let newList = [];
    if(!left || !right){
        return; 
    }
    while (i < left.length && j < right.length){
        if(left[i] > right [j]){
            countReverse += left.length - i;
            countReverse %= kmod;
            newList.push(right [j]);
            j++;
        }else{
            newList.push(left [i]);
            i++;  
        }
    }
    if(i < left.length){
        newList = newList.concat(left.slice(i,left.length))
    }else{
        newList = newList.concat(right.slice(j,right.length))
    }
    return newList;
}
module.exports = {
    InversePairs : InversePairs
};