- #include <iostream> 
-   
-  using namespace std; 
-   
-   
- void merge(int *arr, int size, int first, int middle, int last) 
- { 
-     int temp[size]; 
-     for(int i = first; i<=last; i++) 
-       temp[i] = arr[i]; 
-     int i=first, j=middle+1, k=first; // 1st Change, Set k to first instead of 0 
-     while(i<=middle && j<=last) 
-     { 
-        if(temp[i] <= temp[j]) 
-           arr[k++] = temp[i++]; 
-        else 
-           arr[k++]=temp[j++]; // 2nd Change, use j instead of i 
-     } 
-     while(i<=middle) 
-        arr[k++]=temp[i++]; 
-     while(j<=last)    // 3rd Change you missed this case 
-     	arr[k++]=temp[j++]; 
- } 
-   
- void mergesort(int *arr, int size, int first, int last) 
- { 
-     if(first<last) 
-     { 
-        int middle = ( first + last )/2; 
-        mergesort(arr,size,first,middle); 
-        mergesort(arr,size,middle+1,last); 
-        merge(arr,size,first,middle,last); 
-     } 
- } 
- int main() 
- { 
-     cout <<"Him"; 
-     const int size = 10; 
-     int numbers [] = {5,10,1,6,2,9,3,8,7,4}; 
-     mergesort(numbers,size,0,9); 
-     for( int i= 0; i<size; ++i) 
-     { 
-         cout << numbers[i] << " "; 
-     } 
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgoKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBtZXJnZShpbnQgKmFyciwgaW50IHNpemUsIGludCBmaXJzdCwgaW50IG1pZGRsZSwgaW50IGxhc3QpCnsKICAgIGludCB0ZW1wW3NpemVdOwogICAgZm9yKGludCBpID0gZmlyc3Q7IGk8PWxhc3Q7IGkrKykKICAgICAgdGVtcFtpXSA9IGFycltpXTsKICAgIGludCBpPWZpcnN0LCBqPW1pZGRsZSsxLCBrPWZpcnN0OyAvLyAxc3QgQ2hhbmdlLCBTZXQgayB0byBmaXJzdCBpbnN0ZWFkIG9mIDAKICAgIHdoaWxlKGk8PW1pZGRsZSAmJiBqPD1sYXN0KQogICAgewogICAgICAgaWYodGVtcFtpXSA8PSB0ZW1wW2pdKQogICAgICAgICAgYXJyW2srK10gPSB0ZW1wW2krK107CiAgICAgICBlbHNlCiAgICAgICAgICBhcnJbaysrXT10ZW1wW2orK107IC8vIDJuZCBDaGFuZ2UsIHVzZSBqIGluc3RlYWQgb2YgaQogICAgfQogICAgd2hpbGUoaTw9bWlkZGxlKQogICAgICAgYXJyW2srK109dGVtcFtpKytdOwogICAgd2hpbGUoajw9bGFzdCkgICAgLy8gM3JkIENoYW5nZSB5b3UgbWlzc2VkIHRoaXMgY2FzZQogICAgCWFycltrKytdPXRlbXBbaisrXTsKfQoKdm9pZCBtZXJnZXNvcnQoaW50ICphcnIsIGludCBzaXplLCBpbnQgZmlyc3QsIGludCBsYXN0KQp7CiAgICBpZihmaXJzdDxsYXN0KQogICAgewogICAgICAgaW50IG1pZGRsZSA9ICggZmlyc3QgKyBsYXN0ICkvMjsKICAgICAgIG1lcmdlc29ydChhcnIsc2l6ZSxmaXJzdCxtaWRkbGUpOwogICAgICAgbWVyZ2Vzb3J0KGFycixzaXplLG1pZGRsZSsxLGxhc3QpOwogICAgICAgbWVyZ2UoYXJyLHNpemUsZmlyc3QsbWlkZGxlLGxhc3QpOwogICAgfQp9CmludCBtYWluKCkKewogICAgY291dCA8PCJIaW0iOwogICAgY29uc3QgaW50IHNpemUgPSAxMDsKICAgIGludCBudW1iZXJzIFtdID0gezUsMTAsMSw2LDIsOSwzLDgsNyw0fTsKICAgIG1lcmdlc29ydChudW1iZXJzLHNpemUsMCw5KTsKICAgIGZvciggaW50IGk9IDA7IGk8c2l6ZTsgKytpKQogICAgewogICAgICAgIGNvdXQgPDwgbnVtYmVyc1tpXSA8PCAiICI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==