Top.Mail.Ru
Ответы

Помогите создать программу Kotlin

У фирмы на складе хранятся товары различных категорий. Существует список с данными о весе и категории товаров склада. Фирме необходимо перевезти максимальное количество (в штуках) товаров категории «B». При этом она может сделать одну перевозку общим весом в 15000 кг. Напишите программу, которая определит, сколько максимум товаров требуемой категории сможет перевезти фирма за один раз.



Входные данные:

Вводится натуральное число n – количество товаров на складе. Далее вводятся n строк с категорией и весом (в килограммах). В каждой из таких строк идет сначала категория (заглавная латинская буква), потом пробел, потом вес товара (натуральное число).



Выходные данные:

Вывести одно число – максимальное количество товаров (в штуках) категории «А», которые может перевезти фирма за один раз (общий вес товаров не должен превышать 20000 кг.).



Так, например, если программе на вход будут поданы следующие данные:

7

A 1000

B 11000

C 100

A 500

B 8000

B 1000

B 5000,

то она должна вывести число 3.



В поле краткого ответа введите число, которое получается в результате работы программы на входных данных из файла «6.1.txt»

По дате
По Рейтингу
Аватар пользователя
Новичок
1234567891011121314151617181920212223242526272829303132333435363738394041424344
 import java.util.Scanner 
 
fun main() { 
    val scanner = Scanner(System.`in`) 
     
    // Считываем количество товаров 
    val n = scanner.nextInt() 
    scanner.nextLine() // Переход на следующую строку 
 
    // Создаем список для хранения веса товаров категории "B" 
    val bWeights = mutableListOf<Int>() 
 
    // Считываем данные о товарах 
    repeat(n) { 
        val input = scanner.nextLine().split(" ") 
        val category = input[0] 
        val weight = input[1].toInt() 
         
        if (category == "B") { 
            bWeights.add(weight) 
        } 
    } 
 
    // Сортируем веса товаров категории "B" в порядке возрастания 
    bWeights.sort() 
 
    // Инициализируем переменные для подсчета количества товаров и суммарного веса 
    var totalWeight = 0 
    var itemCount = 0 
 
    // Итерируем по отсортированному списку и суммируем веса 
    for (weight in bWeights) { 
        if (totalWeight + weight <= 15000) { 
            totalWeight += weight 
            itemCount++ 
        } else { 
            break 
        } 
    } 
 
    // Выводим результат 
    println(itemCount) 
} 
 
Аватар пользователя
Просветленный
1234567891011121314151617
 fun main() { 
    val n = readLine()!!.toInt() 
    var totalWeight = 0 
    var countB = 0 
 
    repeat(n) { 
        val (category, weight) = readLine()!!.split(" ") 
        val intWeight = weight.toInt() 
 
        if (category == "B" && totalWeight + intWeight <= 15000) { 
            totalWeight += intWeight 
            countB++ 
        } 
    } 
 
    println(countB) 
} 

Важно:

  • Данный код предполагает, что входные данные находятся в стандартном вводе (консоль).

  • Если ваши данные находятся в файле “6.1.txt”, вам нужно будет модифицировать код, чтобы он считывал данные из этого файла.


Пример изменения кода для считывания из файла:

123456789101112131415161718
 fun main() { 
    val file = File("6.1.txt") 
    val n = file.readLines()[0].toInt() 
    var totalWeight = 0 
    var countB = 0 
 
    for (i in 1 until n + 1) { 
        val (category, weight) = file.readLines()[i].split(" ") 
        val intWeight = weight.toInt() 
 
        if (category == "B" && totalWeight + intWeight <= 15000) { 
            totalWeight += intWeight 
            countB++ 
        } 
    } 
 
    println(countB) 
} 

Пример использования с файлом:

  1. Сохраните код в файл с именем main.kt.

  2. Создайте файл 6.1.txt с входными данными.

  3. Запустите программу из командной строки: kotlinc main.kt -include-runtime -d main.jar и затем java -jar main.jar

Аватар пользователя
Мастер

юб.ыпдбфвпджбэыварэжвафр