3
void merge_countSmaller(vector<int> &indices, int first, int last, vector<int> &results,5
int count = last - first;8
int mid = first + step;9
merge_countSmaller(indices, first, mid, results, nums);10
merge_countSmaller(indices, mid, last, results, nums);16
while ((idx1 < mid) || (idx2 < last)) {17
if ((idx2 == last) || ((idx1 < mid) && (nums[indices[idx1]] <= nums[indices[idx2]]))) {18
tmp.push_back(indices[idx1]);19
results[indices[idx1]] += semicount;22
tmp.push_back(indices[idx2]);27
move(tmp.begin(), tmp.end(), indices.begin() + first);32
vector<int> countSmaller(vector<int> &nums) {34
vector<int> results(n, 0);35
vector<int> indices(n, 0);36
iota(indices.begin(), indices.end(), 0);37
merge_countSmaller(indices, 0, n, results, nums);