Убедись, что программа работает корректно для больших отрицательных чисел, например -2147483648. Что неправильно?