#include <stdio.h> #include <stdint.h> int16_t signed_unsigned_sum(int8_t a, uint8_t b) { int16_t Ar = (a > 127) ? (int16_t)(~a + 1) : (int16_t) a; return Ar + (int16_t)b; } int main() { int8_t a; uint8_t b; scanf("%hhd %hhu", &a, &b); printf("%d", signed_unsigned_sum(a, b)); return 0; }
Test Cases
Test Results
Input
-10 20
Expected Output
10