Kotlin programs are compiled on the server by the Kotlin command line compiler 1.9.22. The compiler is invoked with the following parameters:
kotlinc Main.kt -jvm-target 1.8
Solutions are executed by the Java 8 interpreter:
java -client -Xmx544m -Xss64m -DONLINE_JUDGE
-classpath .;kotlin-stdlib.jar;kotlin-reflect.jar MainKt
You can find the compiler here.
Restrictions
package
declaration is not supported.
Examples of solving a problem
A sample solution for 1000. A + B problem in Kotlin:
fun main(args: Array<String>) {
val (x, y) = readLine()!!.split(' ').map(String::toInt)
println(x + y)
}
Or even shorter:
fun main(args: Array<String>) =
print(readLine()!!.split(' ').map(String::toInt).sum())
A sample solution for 1001. Reverse Root in 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)) }
}
Or once again in a single operator:
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)
Earlier compilers
- Kotlin 1.1.4 was used until September, 1 2020.
- Kotlin 1.4.0 was used until January, 22 2024.