Menu
Coddy logo textTech

Повторение — складской учёт

Часть раздела Логика и управление потоком путешествия по Kotlin на Coddy. Урок 5 из 63.

challenge icon

Задание

Средне

Завершите stockDesk с параметрами stock: Map<String, Int>, item: String, delivery: Int, sold: Int. Скопируйте stock, добавьте неотрицательное значение delivery для item (отсутствующее значение означает ноль), затем вычтите sold, если доступного stock достаточно. Верните итоговый stock или -1, если продажу невозможно выполнить. Delivery и sold являются неотрицательными.

Если выше не указаны более строгие ограничения, коллекции содержат не более 100 элементов на каждом уровне, а целочисленные аргументы и целочисленные значения коллекций находятся в диапазоне от -1000 до 1000. Текст, предоставляемый для разбора, может содержать некорректные представления или представления, выходящие за допустимый диапазон, как описано выше.

Верните значение типа Int. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества элементов, за которым следуют элементы, а map начинается с количества записей, за которым следуют каждый ключ и значение. Для каждой строки вложенного списка формат «количество и элементы» повторяется. Предоставленный main выводит возвращаемое значение, за которым следует один символ новой строки. Списки используют стандартный формат Kotlin со скобками; не выводите дополнительные метки.

Попробуйте сами

fun stockDesk(stock: Map<String, Int>, item: String, delivery: Int, sold: Int): Int {
    // Напишите ваше решение здесь.
    return 0
}
fun main() {
    val stockCount = readln().toInt()
    val stock = mutableMapOf<String, Int>()
    for (i0 in 0 until stockCount) {
        val stockKey = readln()
        val stockValue = readln().toInt()
        stock[stockKey] = stockValue
    }
    val item = readLine().orEmpty()
    val delivery = readln().toInt()
    val sold = readln().toInt()
    println(stockDesk(stock, item, delivery, sold))
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Песочница Kotlin