abs(~~~) + K
이 부분이 문제입니다. 메크로를 사용하면 흔히들 하는 실수 중 하나죠.
abs는 정의가 이겁니다.
#define abs(x) ((x)<0) ? ((-1)*(x)):(x)
자 그럼 저 식을 다시 봅시다.
((x)<0) ? ((-1)*(x)):(x) + K
즉, x가 0보다 크거나 같으면 x+K를, x가 0보다 작으면 -x를 출력한다는 뜻이 됩니다. 이걸 의도하신건 아닐테죠?
#define abs(x) (((x)<0) ? ((-1)*(x)):(x))
이렇게 괄호로 한번 더 감싸주세요.