Недавно обнаружил, что в C++ при умножении или делении нуля на отрицательное число, в ответ записывается не 0, а -0. Из-за этой особенности долгое время не мог сдать задачу. Решил проблему так:
printf("%llf", ans == 0 ? fabs(ans) : ans);
Существует ли более красивое решение?