https://coderun.yandex.ru/problem/lap Легкая

Решение

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.lang.Long
import java.lang.Integer

fun main(args: Array<String>) {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    val firstLine = reader.readLine().split(" ").map { Integer.parseInt(it) }
    val n = firstLine[0]
    val t = firstLine[1]
    val s = firstLine[2]

    val speeds = reader.readLine().split(" ").map { Integer.parseInt(it) }

    val v1 = speeds[0]
    var totalOvertakes = 0L
    val tLong = t.toLong()
    val sLong = s.toLong()
    val v1Long = v1.toLong()

    for (i in 1 until n) {
        val vi = speeds[i]
        val viLong = vi.toLong()

        if (v1 > vi) {
            val diffDist = (v1Long - viLong) * tLong
            val lapsGained = diffDist / sLong

            if (diffDist > 0L && diffDist % sLong == 0L) {
                totalOvertakes += lapsGained - 1
            } else {
                totalOvertakes += lapsGained
            }
        }
    }

    writer.write(totalOvertakes.toString())
    writer.flush()
    reader.close()
    writer.close()
}