fun addingWillOverflow(x: Long, y: Long): Boolean {
return (x > 0 && y > Long.MAX_VALUE - x) || (x < 0 && y < Long.MIN_VALUE - x)
}
fun main() {
var x: Long = 39839299
var y: Long = 1472783642
println(if (addingWillOverflow(x, y)) "true" else "false")
x = 9223372036854775807 // Long.MAX_VALUE
y = 1872783642
println(if (addingWillOverflow(x, y)) "true" else "false")
}
/*
run:
false
true
*/