Загрузка данных


fun main() {
    val dictionary = mutableMapOf(
        "быстрый" to mutableListOf("стремительный", "скорый", "проворный"),
        "красивый" to mutableListOf("живописный", "прекрасный", "великолепный"),
        "большой" to mutableListOf("огромный", "гигантский", "крупный"),
        "умный" to mutableListOf("смышлёный", "мудрый", "толковый"),
        "радость" to mutableListOf("веселье", "восторг", "отрада")
    )

    println("Синонимы для 'быстрый': ${findSynonyms(dictionary, "быстрый")}")

    addSynonym(dictionary, "быстрый", "юркий")
    addSynonym(dictionary, "тихий", "бесшумный")

    println("После добавления:")
    println("Синонимы для 'быстрый': ${findSynonyms(dictionary, "быстрый")}")
    println("Синонимы для 'тихий': ${findSynonyms(dictionary, "тихий")}")

    println("\nВсе слова и синонимы (без дубликатов):")
    println(getAllWords(dictionary))
}

fun findSynonyms(dictionary: Map<String, List<String>>, word: String): List<String> {
    return dictionary[word] ?: emptyList()
}

fun addSynonym(dictionary: MutableMap<String, MutableList<String>>, word: String, synonym: String) {
    val synonyms = dictionary.getOrPut(word) { mutableListOf() }
    if (!synonyms.contains(synonym)) {
        synonyms.add(synonym)
    }
}

fun getAllWords(dictionary: Map<String, List<String>>): List<String> {
    return (dictionary.keys + dictionary.values.flatten()).distinct()
}