fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <iomanip>
  6. using namespace std;
  7.  
  8. bool fail1=0, fail2=0;
  9.  
  10. bool lsw0(int a, int b) {
  11. // В исходном массиве нет нулей,
  12. // компаратор не может запуститься от нулевого аргумента
  13. if (a==0 || b==0) if (!fail1) {fail1 = 1; cout << "Fail #1" << endl;}
  14. // Арктангенс от положительного числа и нуля согласно стандарту
  15. // равен pi/2 независимо от первого аргумента
  16. if (atan2(a,0) < atan2(b,0)) if (!fail2) {fail2 = 1; cout << "Fail #2" << endl;}
  17. // Это отношение транзитивно, если арктангенс зависит только от входных данных
  18. return atan2(a,0) < atan2(b,0);
  19. }
  20.  
  21. int main () {
  22. cout << lsw0(1,32) << ' ' << lsw0(32,1) << endl;
  23. #ifdef __MINGW32__
  24. cout << "I'm running on MinGW 32" << endl;
  25. #endif
  26. vector<int> perm;
  27. for (int j=1;j<250;j++) {
  28. perm.push_back(j);
  29. }
  30. sort(perm.begin(),perm.end(),lsw0);
  31. }
  32.  
Success #stdin #stdout 0.02s 2860KB
stdin
Standard input is empty
stdout
0 0