fork(1) download
  1. #include <algorithm>
  2. #include <deque>
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <set>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. #define DBG(x) { cout << left << setw(40) << setfill(' ') << #x << (x) << endl; }
  11.  
  12.  
  13. int main()
  14. {
  15. vector<int> vec{1,-2,3,-4,0,0,0,10,-10};
  16.  
  17. auto cmp = [](int l, int r){
  18. return (l == 0) ^ (r == 0) ? r == 0 : less<int>()(l,r);
  19. };
  20.  
  21. auto cmp_or = [](int l, int r){
  22. return (l == 0) || (r == 0) ? r == 0 : less<int>()(l,r);
  23. };
  24.  
  25. sort(begin(vec),end(vec),cmp);
  26.  
  27. for(int v : vec){
  28. cout << v << ", ";
  29. }
  30. cout << endl;
  31.  
  32. int a = 0;
  33. int b = 0;
  34.  
  35. DBG(cmp(a,b));
  36. DBG(cmp(b,a));
  37. DBG(cmp_or(a,b));
  38. DBG(cmp_or(b,a));
  39.  
  40. return 0;
  41. }
  42.  
  43.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
-10, -4, -2, 1, 3, 10, 0, 0, 0, 
cmp(a,b)                                0
cmp(b,a)                                0
cmp_or(a,b)                             1
cmp_or(b,a)                             1