Форум » Массивы, сортировка, работа с файлами » Задача №5308 (Л. Шастин) » Ответить

Задача №5308 (Л. Шастин)

Skov: В условии задачи говорится, что у блюда есть время начала и время окончания его приготовления. При этом анализ файла показал, что коды некоторых блюд встречаются там нечетное количество раз. Например, код 1 встречается 3 раза, код 5 - 1 раз. Значит ли это, что некоторые блюда не были приготовлены? В условии об этом ничего не сказано. Более того, если не учитывать эту "странность" файла, то можно даже попасть во второй ответ, хотя, судя по всему, пару одному блюду будет составлять блюдо с другим кодом. Как это все можно объяснить?

Ответов - 8

Поляков: Skov пишет: В условии об этом ничего не сказано. Спасибо за замечание, условие дополнено. Да, приготовление некоторых заказов могло по каким-то причинам не завершиться.

Skov: Здесь не достаточно просто дополнить условие задачи. Надо изменить второй ответ, в который мы сейчас попадаем без учета дополненного условия. С учетом дополнения ответ, судя по всему, должен быть 58. И первый ответ, скорее всего, надо также подкорректировать.

gusev67: Добрый день. Первый из двух ответов задачи (190 - максимальное количество заказов, приготовление которых закончилось в течение одного часа) вызывает сомнения. Внимательно изучив условие задачи, а том числе пример разбора тестового файла в условии, понимаешь, что необходимо рассмотреть все 60 минутные интервалы из файла с исходными данными. Минимальный временной интервал в исходном файле одна минута, поэтому 60 минутные интервалы будут перебираться в цикле, как 0-60 минута, 1-61.минута, 2-62 минута, и т.д. до 900 минуты (всего файл рассматривает 960 минут с начала работы бургерной. В каждом временном интервале необходимо считать только те заказы которые в нем начались и завершились. ### uses school; var hour:=new List <integer>; var s3:=ReadAllLines('26-86.txt').Select(w->w.Split).OrderBy(w->w[0].ToInteger); for var i:=0 to 900 do begin var count:=0; s3.Where(w->w[0].ToInteger.Between(i,i+60)).GroupBy(w->w[1]).ForEach(w->begin count+=w.Count div 2 end); hour.Add(count); end; hour.Max.Pr; В этом случае получается ответ 62. Возможно я неверно понмиаю условия задачи или задача имеет неверный ответ


Винникова: gusev67 пишет: В этом случае получается ответ 62. Возможно я неверно понмиаю условия задачи или задача имеет неверный ответ Я тоже сначала думала как Вы. Посмотрите в архиве solve решение. Лично я только по нему поняла в чем дело. В один час должны вкладываться завершенные заказы. Не факт, что они начали изготавливаться в этот же час, могли и раньше. Формулировка задачи так себе.

Базакин: Извините, а где можно посмотреть решение в "архиве solve"?

Aniri: Винникова пишет: Я тоже сначала думала как Вы. Посмотрите в архиве solve решение. Лично я только по нему поняла в чем дело. Ольга, пожалуйста, киньте ссылку на это решение.

Галина Александровна: Делаю в Excel Получается 9 заказов. Не 190 Если смотреть как на параллельный процесс, то получается 119. Не 190 Или, если среднее как в их примере не считать, а сортировать столбец В по возрастанию. Затем выделять данные в столбце В и смотреть, чтобы сумма была <60 То 42, Не 190

Поляков: Решение есть на сайте.



полная версия страницы