Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.04.2024
Сообщений: 1

Как разбить массив чисел так, чтобы суммарная разница между максимальным и минимальным числом была максимальна?

21.04.2024, 19:57. Показов 595. Ответов 2

Студворк — интернет-сервис помощи студентам
У меня есть массив чисел, мне нужно разбить его на группы так, чтобы каждая из них была длины от l до r (менять порядок чисел (сортировать) нельзя) и, чтобы суммарная разница между максимальным и минимальным числом была максимальна.
Если разбиение возможно несколькими способами, то вывести любой из них

Например, есть массив [98, 99, 98, 100, 98, 99, 98]; l = 2; r = 4. В ответе будет разбиение на 3 подмассива: [98, 99] [98, 100] [98, 99, 98]

Суммарная разница здесь будет 4.

Добавлено через 3 часа 16 минут
Получилось что-то такое (извините за Kotlin), но оно не проходит на 3-ем тесте, вообще задание изначально было разбить строку на слова, поэтому входные данные здесь такие:

В первой строке записано три целых числа: n, l, r — длина поступающей на вход строки, минимальная и максимальная допустимая длины слова соответственно.
Вторая строка содержит последовательность поступающих на вход символов, состоящую из n прописных английских букв.

А выходные:
В первой строке выведите суммарную разницу.
Во второй строке выведите k — количество слов в получившейся нарезке.
В следующих k строках выведите получившиеся в результате нарезки слова в том порядке, в котором они встречаются в исходной последовательности.
Если нарезать последовательность на слова невозможно — выведите единственную строку ”NO SOLUTION”.
Например:
Ввод
7 2 4
bcbdbcb
Вывод
4
3
bc
bd
bcb

Как думаете где может быть ошибка?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
fun main() {
    Task5().run()
}
 
class Task5 {
    fun run() {
        val (_, l, r) = readln().split(" ").map { it.toInt() }
        val sequence = readln()
 
        val result = maxDifference(sequence, l, r)
        if (result.first.size < 2) {
            println("NO SOLUTION")
            return
        }
        println(result.second)
        println(result.first.size)
        println(result.first.joinToString("\n"))
    }
 
    private fun maxDifference(a: String, l: Int, r: Int): Pair<List<String>, Int> {
        val n = a.length
        val words = Array(n + 1) {Pair(listOf<String>(), 0) }
 
        for (i in l..n) {
            for (x in l..r) {
                if (i >= x) {
                    val slice = a.slice(i - x..<i)
                    val max = slice.maxByOrNull { it.code }?.code ?: 0
                    val min = slice.minByOrNull { it.code }?.code ?: 0
 
                    val new = words[i - x].second + (max - min)
                    if (words[i].second <= new) {
                        val newArr = mutableListOf<String>()
                        newArr.addAll(words[i - x].first)
                        newArr.add(slice)
 
                        words[i] = Pair(newArr.toList(), new)
                    }
                }
            }
        }
 
        return words.last()
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2024, 19:57
Ответы с готовыми решениями:

Разбить элементы строк двумерного массива на три части так, чтобы разница между частями была минимальной
Задача: есть большая таблица с 24 строками и 7 столбцами. Строки нужно поделить на три части с минимальной разницей между ними и вывести в...

Разбить элементы строк двумерного массива на три части так, чтобы разница между частями была минимальной
Задача: есть большая таблица с 24 строками и 7 столбцами. Строки нужно поделить на три части с минимальной разницей между ними и вывести в...

Найти сумму элементов той строки, в которой разница между максимальным и минимальным элементами максимальна
Дана вещественная, квадратная матрица порядка N. Найти сумму элементов той строки в которой разница между максимальным и минимальным...

2
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.04.2024, 09:28
Цитата Сообщение от BAF1 Посмотреть сообщение
Как думаете где может быть ошибка?
В алгоритме
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.04.2024, 10:52
Метки c++, python
java
... а код Kotlin...

Лол
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2024, 10:52
Помогаю со студенческими работами здесь

Оценить какие из предметов необходимо взять чтобы их суммарная стоимость была максимальна
Во всех задачах данные о графе помещаются в файле. Использовать то представление графа, которое указано в задаче Представление графа:...

Разница между максимальным и минимальным из введенных чисел
Здравствуйте. столкнулся с такой проблемой, что не могу решить эти задачки, я пока только учусь. Буду очень признателен Напишите...

Найти номера предметов, которые нужно включить в груз, чтобы их суммарная стоимость была максимальна
Обращаюсь к гуру) Мозг уже не работает, нужна функция или хотя бы алгоритм. Есть товары с определенной стоимостью и весом, требуется их...

В массиве действительных чисел найдите разность между максимальным и минимальным числом
Задача 3. В заданном массиве действительных чисел найдите разность между максимальным и минимальным числом.

Дано 100 чисел, найти разность между максимальным и минимальным числом
Даны 100 вещественных чисел. Найти разность между максимальным и минимальным числом. В голову не лезет, делать через for или массив? С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru