fork(46) download
  1. #include <iostream>
  2.  
  3. /* Отражаем 1 в 0 и 0 в 1 */
  4. int flip(int bit) {
  5. return 1^bit;
  6. }
  7.  
  8. /* Возвращаем 1, если число положительное, и 0, если отрицательное*/
  9. int sign(int a) {
  10. return flip((a >> 31) & 0x1);
  11. }
  12.  
  13. int getMaxNaive(int a, int b) {
  14. int k = sign(a - b);
  15. int q = flip(k);
  16. return a * k + b * q;
  17. }
  18.  
  19. int main() {
  20. std::cout << getMaxNaive(4, 5);
  21. return 0;
  22. }
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
5