Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60

Задача: "Арбузы"

23.01.2014, 14:32. Показов 4124. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Две машины заполнены арбузами. В одной машине N (1<N<50) арбузов, а в другой - M (1<M<50). Вес каждого арбуза известен. Сколько арбузов необходимо перенести с одной машины в другую и наоборот, чтобы общий вес арбузов в одной машине сравнялся с общим весом арбузов в другой машине. Число переносов должно быть минимальным.

Например, если в первой машине находится четыре арбуза весом 7, 2, 5, 4 кг, их общий вес составляет 18 кг. Во второй машине три арбуза весом 3, 3, 5 кг с общим весом в 12 кг. Для решения этой задачи необходимо перенести арбуз в 7 кг из первой машины во вторую машину, а из второй машины арбуз в 4 кг перенести в первую. В итоге будет по 15 кг.

Пример входных и выходных данных:

Вход: Выход:
7 2 5 4 7
4 3 5 4

Помогите пожалуйста с такой сложной задачей.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2014, 14:32
Ответы с готовыми решениями:

Арбузы
Иван Васильевич пришел на рынок и решил купить два арбуза: один для себя, а другой для тещи. Понятно, что для себя нужно выбрать арбуз...

Арбузы
Можете помочь решить. На прилавке расположены в ряд N арбузов. Вес каждого арбуза, кроме крайних, на 100 граммов меньше, чем среднее...

Задача про арбузы
Здравствуйте, имеется задача с e-olymp. Называется арбузы. Условие: На прилавке в один ряд лежат n арбузов. Вес каждого арбуза, кроме...

6
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
23.01.2014, 15:21
Понятия динамическое программирование, очередь знакомы?
0
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
23.01.2014, 18:17  [ТС]
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Понятия динамическое программирование, очередь знакомы?
Динамическое я так понял вы имеете в виду динамические типы данных (чучуть знаю) чтобы не нагружать сильно компьютер, а очередь не догадываюсь что такое. Помогите пожалуйста
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
23.01.2014, 21:36
а про массивы что-нибудь знаете?
код писать не буду (написанный мною код не принесет Вам никакой пользы). если есть желание, могу описать алгоритм решения задачи, но для этого Вы должны знать как минимум про очереди и структуры.
Почитайте пор стеки, очереди и структуры, как все станет с ними понятно можно будет решить эту задачу.
0
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
24.01.2014, 14:22  [ТС]
я изначально думал просто через массив, но алгоритм составить не получается, просто сравнивать все элементы вместе это нужно 100 циклов, потом ещё возможен перенос только одного арбуза из одной машины. помогите с непонятным алгоритмом, записать в коде не проблема

Добавлено через 4 минуты
Цитата Сообщение от BBoyXaker Посмотреть сообщение
Вход: Выход:
7 2 5 4 7
4 3 5 4
Вот как должно быть:
Вход:
тест 1: 7 2 5 4
тест 2: 4 3 5
Выход:
тест 1: 7
тест 2: 4
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
24.01.2014, 20:31
Цитата Сообщение от BBoyXaker Посмотреть сообщение
помогите с непонятным алгоритмом, записать в коде не проблема
В условии ограничений на вес арбузов нет, поэтому я сам определю например так: вес арбуза не превышает 20 кг, соответственно общий вес арбузов не превышает 2000 кг.
Создаем массив a[0..2000] все значения которых изначально делаем например 200. Каждое значение этого массива будет меняться в процессе выполнения программы и будет означать вот что: например a[4]=10, это значит что чтобы достичь в первой машине веса 4 кг, нужно будет переместить 10 арбузов (неважно из какой машины сколько и каких именно).
Затем создаем массив b[1..20] (мы договорились что вес арбузов не превышает 20 кг) в котором запишем сколько каких арбузов есть в обеих машинах. Например b[3]=4 означает что арбузов с весом 3 в обоих машинах всего четыре.
Затем создаем структуру в которой будет всего один массив (такой же как массив b[]), и на основе этой структуры создаем массив таких структур размером [0..2000] (пусть это будет массив c[1..2000]). Каждый элемент этого массива будет содержать информацию о том сколько каких арбузов содержится в первой машине. Т.е. в c[5] можно узнать при весе в первой машине 5 кг, сколько каких арбузов в первой машине есть. (Можно в эту структуру включить и данные из массива a[], но необязательно, я намеренно разделил их чтобы понятнее было объяснить)
Теперь так, суммируем все арбузы в первой машине (пусть получилось X кг). Тогда a[X] делаем равным 0 (чтобы достичь в первой машине X кг нужно перенести 0 арбузов). Записываем все имеющиеся арбузы в c[X]. И заносим значение X в очередь.
Далее обрабатываем элементы очереди так:
Берем очередной номер Y из очереди. Перебирая имеющиеся арбузы в c[Y] и учитывая все имеющиеся арбузы в b[] смотрим улучшаем (уменьшаем) ли значение в массиве a[]. Например очередной элемент в очереди 20 и a[20]=3 (еще раз напомню это значит что чтобы сделать в первой машине 20 кг нужно переложить 3 арбуза). Смотрим имеющиеся арбузы в первой машине для 20 кг и учитывая все имеющиеся арбузы мы например можем убрать из первой машины арбуз весом 3 кг. Тогда смотрим значение a[17]. Если это значение больше чем a[20]+1 , то записываем в a[17] значение a[20]+1. Арбузы из c[20] переписываем в c[17] (без одного арбуза весом 3 кг). И заносим 17 в очередь.
Аналогично для добавления арбуза весом 3 кг в первую машину, делаем тоже самое для a[23] и c[23] (только туда добавляем еще один арбуз весом 3 кг).
В общем такой алгоритм. )
1
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
25.01.2014, 11:48  [ТС]
valeriikozlov, Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2014, 11:48
Помогаю со студенческими работами здесь

Задача про арбузы и дыни
На базу завезли С кг арбузов по цене 2 руб. за килограмм и В кг дынь по цене 5 руб. за килограмм. Определить, сколько всего стоят арбузы и...

Задача "Антон и арбузы"
3. Антон и арбузы ограничение по времени на тест1 секунда ограничение по памяти на тест256 мегабайт вводстандартный ввод ...

Арбузы
Арбузы (Время: 1 сек. Память: 16 Мб Сложность: 14%) Иван Васильевич пришел на рынок и решил купить два арбуза: один для себя, а...

Антон и арбузы
Добрый день. Почему выдает ошибку в коде? Задача: На лето родители отправили Антона к бабушке помогать ей выращивать в огороде арбузы. ...

Арбузы (оптимальный поиск min и max)
Всем привет, решил задачку, однако с использованием вектора. Возможно ли решение без него? Я понимаю, что можно создать огромный массив, но...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru