Программы на Kotlin компилируются на сервере с помощью Kotlin command line compiler 1.9.22. Компилятор запускается со следующими опциями:
kotlinc Main.kt -jvm-target 1.8
Запуск решения осуществляется с помощью интерпретатора Java 8:
java -client -Xmx544m -Xss64m -DONLINE_JUDGE
-classpath .;kotlin-stdlib.jar;kotlin-reflect.jar MainKt
Вы можете найти компилятор здесь.
Ограничения
Объявление package
не поддерживается.
Примеры решения задач
Пример решения задачи 1000. A + B problem на Kotlin:
fun main(args: Array<String>) {
val (x, y) = readLine()!!.split(' ').map(String::toInt)
println(x + y)
}
Или еще короче:
fun main(args: Array<String>) =
print(readLine()!!.split(' ').map(String::toInt).sum())
Пример решения задачи 1001. Обратный корень на Kotlin:
fun main(args: Array<String>) {
val nums = mutableListOf<Double>()
while (true) {
nums +=
(readLine() ?: break)
.split(' ')
.filter { !it.isEmpty() }
.map { it.toDouble() }
}
nums.reversed()
.forEach { println(Math.sqrt(it)) }
}
Или снова в один оператор:
fun main(args: Array<String>) =
generateSequence { readLine() }
.takeWhile { true }
.map { a -> a.split(' ').filter(String::isNotEmpty).toMutableList() }
.fold(mutableListOf<String>(), { a, b -> (a + b).toMutableList() })
.map(String::toDouble)
.map { x -> Math.sqrt(x) }
.reversed()
.forEach(::println)
Прежние компиляторы
- Компилятор Kotlin 1.1.4 использовался до 1 сентября 2020 года.
- Компилятор Kotlin 1.4.0 использовался до 22 января 2024 года.