Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val accounts = mutableMapOf<String, Long>()
while (true) {
val line = reader.readLine() ?: break
val parts = line.split(" ")
when (parts[0]) {
"DEPOSIT" -> {
val name = parts[1]
val sum = parts[2].toLong()
accounts[name] = (accounts[name] ?: 0L) + sum
}
"WITHDRAW" -> {
val name = parts[1]
val sum = parts[2].toLong()
accounts[name] = (accounts[name] ?: 0L) - sum
}
"BALANCE" -> {
val name = parts[1]
if (accounts.containsKey(name)) {
writer.write(accounts[name].toString())
} else {
writer.write("ERROR")
}
writer.newLine()
}
"TRANSFER" -> {
val name1 = parts[1]
val name2 = parts[2]
val sum = parts[3].toLong()
accounts[name1] = (accounts[name1] ?: 0L) - sum
accounts[name2] = (accounts[name2] ?: 0L) + sum
}
"INCOME" -> {
val p = parts[1].toLong()
for (name in accounts.keys) {
val balance = accounts[name]!!
if (balance > 0) {
accounts[name] = balance + balance * p / 100
}
}
}
}
}
reader.close()
writer.close()
}