fun main(args: Array) { getAns()?.also { println("Possible") println(it) }?:run { println("Impossible") } } fun getAns():Long? { val (a,b,c,d) = readLine()!!.split(" ").map { it.toInt() } if(d >= 10) { return null } var adj = 1L var remainB = b var remainA = a var remainCombo = 100 var score = 0L while (remainB > 0) { val add = Math.min(remainCombo, remainB) score += add*50*adj remainCombo -= add remainB -= add if(remainCombo <= 0) { adj*=2 remainCombo = 100 } } while (remainA > 0) { val add = Math.min(remainCombo, remainA) score += add*100*adj remainCombo -= add remainA -= add if(remainCombo <= 0) { adj *= 2 remainCombo = 100 } } return score }