#include <iostream>
#include <climits>
/* Отражаем 1 в 0 и 0 в 1 */
int flip(int bit) {
return 1^bit;
}
/* Возвращаем 1, если число положительное, и 0, если отрицательное*/
int sign(int a) {
return flip((a >> (sizeof(int) * CHAR_BIT - 1)) & 0x1);
}
int getMaxNaive(int a, int b) {
int k = sign(a - b);
int q = flip(k);
return a * k + b * q;
}
int main() {
std::cout << getMaxNaive(4, 5);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2xpbWl0cz4KCi8qINCe0YLRgNCw0LbQsNC10LwgMSDQsiAwINC4IDAg0LIgMSAqLwppbnQgZmxpcChpbnQgYml0KSB7CiAgICByZXR1cm4gMV5iaXQ7Cn0KIAovKiDQktC+0LfQstGA0LDRidCw0LXQvCAxLCDQtdGB0LvQuCDRh9C40YHQu9C+INC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3QvtC1LCDQuCAwLCDQtdGB0LvQuCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSovCmludCBzaWduKGludCBhKSB7CiAgICByZXR1cm4gZmxpcCgoYSA+PiAoc2l6ZW9mKGludCkgKiBDSEFSX0JJVCAtIDEpKSAmIDB4MSk7Cn0KIAppbnQgZ2V0TWF4TmFpdmUoaW50IGEsIGludCBiKSB7CiAgICBpbnQgayA9IHNpZ24oYSAtIGIpOwogICAgaW50IHEgPSBmbGlwKGspOwogICAgcmV0dXJuIGEgKiBrICsgYiAqIHE7Cn0KCmludCBtYWluKCkgewoJc3RkOjpjb3V0IDw8IGdldE1heE5haXZlKDQsIDUpOwoJcmV0dXJuIDA7Cn0=