Решение
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
// Читаем чёрный список
val n = reader.readLine().toInt()
val blacklist = Array(n) { reader.readLine() }
// Читаем файлы библиотеки
val m = reader.readLine().toInt()
val files = Array(m) { reader.readLine() }
// Читаем запросы
val q = reader.readLine().toInt()
val queries = Array(q) { reader.readLine() }
// Определяем удалённые файлы
val deletedFiles = mutableListOf<Pair<String, String>>() // Путь и расширение
for (file in files) {
for (blackDir in blacklist) {
if (file.startsWith(blackDir)) {
val ext = file.substring(file.lastIndexOf("."))
deletedFiles.add(Pair(file, ext))
break
}
}
}
// Обрабатываем запросы
for (queryDir in queries) {
val extCount = mutableMapOf<String, Int>()
for ((file, ext) in deletedFiles) {
if (file.startsWith(queryDir)) {
extCount[ext] = extCount.getOrDefault(ext, 0) + 1
}
}
// Выводим результат
writer.write("${extCount.size}\\n")
for ((ext, count) in extCount) {
writer.write("$ext: $count\\n")
}
}
reader.close()
writer.close()
}