https://coderun.yandex.ru/problem/drunkard-game Легкая

Решение

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

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

    val player1Deck = ArrayDeque<Int>()
    val player2Deck = ArrayDeque<Int>()

    try {
        reader.readLine()?.trim()?.split("\\\\s+".toRegex())?.filter { it.isNotEmpty() }?.forEach {
            player1Deck.addLast(it.toInt())
        }
    } catch (e: Exception) {
        System.err.println("Ошибка чтения карт игрока 1: ${e.message}")
        return
    }

    try {
        reader.readLine()?.trim()?.split("\\\\s+".toRegex())?.filter { it.isNotEmpty() }?.forEach {
            player2Deck.addLast(it.toInt())
        }
    } catch (e: Exception) {
        System.err.println("Ошибка чтения карт игрока 2: ${e.message}")
        return
    }

    if (player1Deck.size != 5 || player2Deck.size != 5) {
        System.err.println("Неверное количество карт.")
    }

    var turns = 0
    val maxTurns = 1_000_000
    var winner = ""

    while (turns < maxTurns) {
        if (player1Deck.isEmpty()) {
            winner = "second"
            break
        }
        if (player2Deck.isEmpty()) {
            winner = "first"
            break
        }

        val card1 = player1Deck.removeFirst()
        val card2 = player2Deck.removeFirst()

        val player1WinsRound = when {
            card1 == 0 && card2 == 9 -> true
            card1 == 9 && card2 == 0 -> false
            else -> card1 > card2
        }

        if (player1WinsRound) {
            player1Deck.addLast(card1)
            player1Deck.addLast(card2)
        } else {
            player2Deck.addLast(card1)
            player2Deck.addLast(card2)
        }

        turns++
    }

    val finalResult = when {
        winner == "first" -> "first $turns"
        winner == "second" -> "second $turns"
        turns == maxTurns -> "botva"
        player1Deck.isEmpty() -> "second $turns"
        player2Deck.isEmpty() -> "first $turns"
        else -> "botva"
    }

    writer.write(finalResult)
    writer.newLine()

    reader.close()
    writer.close()
}