https://coderun.yandex.ru/problem/stick-people/description Легкая

Решение

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

// Функция вычисления неудовлетворённости пёсика
private fun dissatisfaction(neck: Int, collar: Int): Int {
    return when {
        collar < neck -> 0 // Ошейник меньше шеи, можно не носить
        collar - neck <= 100 -> (collar - neck) / 2 // Разница не более 100, частично неудобно
        else -> 30 // Ошейник слишком большой, максимальная неудовлетворённость
    }
}

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    val n = reader.readLine().toInt() // Количество пёсиков и ошейников
    val neckSizes = reader.readLine().split(" ").map { it.toInt() } // Радиусы шей
    val collarSizes = reader.readLine().split(" ").map { it.toInt() } // Радиусы ошейников

    var minDissatisfaction = Int.MAX_VALUE
    var bestStart = 0

    // Перебираем все возможные стартовые дома
    for (start in 0 until n) {
        var totalDissatisfaction = 0

        for (i in 0 until n) {
            val index = (start + i) % n
            totalDissatisfaction += dissatisfaction(neckSizes[index], collarSizes[i])
        }

        if (totalDissatisfaction < minDissatisfaction) {
            minDissatisfaction = totalDissatisfaction
            bestStart = start
        }
    }

    writer.write("${bestStart + 1} $minDissatisfaction")
    writer.newLine()
    writer.flush()

    reader.close()
    writer.close()
}