https://medium.com/@slicesharpy/strivers-sde-count-inversions-in-an-array-using-merge-sort-from-naive-to-optimal-eb94829b4173