fork download
  1. // Call divide(arr, 0, n-1) in the main function
  2. int divide(vector<int> &arr, int l, int r)
  3. {
  4. if(l >= r)
  5. return 0;
  6.  
  7. int mid = (l+r)/2;
  8. int x = divide(arr, l, mid);
  9. int y = divide(arr, mid+1, r);
  10.  
  11. vector<int> ans;
  12. int a=l, b = mid+1;
  13. int tmp = 0;
  14. while (a <= mid && b <= r)
  15. {
  16. if (arr[a] <= arr[b])
  17. ans.push_back(arr[a++]);
  18. else
  19. {
  20. ans.push_back(arr[b++]);
  21. tmp += (mid-a+1);
  22. }
  23. }
  24.  
  25. while (a <= mid)
  26. {
  27. ans.push_back(arr[a++]);
  28. }
  29.  
  30. while (b <= r)
  31. {
  32. ans.push_back(arr[b++]);
  33. }
  34.  
  35. for(int i=0; i<(r-l+1); i++)
  36. {
  37. arr[i+l] = ans[i];
  38. }
  39.  
  40. return x+y+tmp;
  41. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:2:12: error: ‘vector’ was not declared in this scope
 int divide(vector<int> &arr, int l, int r)
            ^~~~~~
prog.cpp:2:19: error: expected primary-expression before ‘int’
 int divide(vector<int> &arr, int l, int r)
                   ^~~
prog.cpp:2:30: error: expected primary-expression before ‘int’
 int divide(vector<int> &arr, int l, int r)
                              ^~~
prog.cpp:2:37: error: expected primary-expression before ‘int’
 int divide(vector<int> &arr, int l, int r)
                                     ^~~
prog.cpp:2:42: error: expression list treated as compound expression in initializer [-fpermissive]
 int divide(vector<int> &arr, int l, int r)
                                          ^
stdout
Standard output is empty