LINUX.ORG.RU
решено ФорумTalks

олимпиадная задача


0

1

Для тех, кому охота напрячь мозг.

Сабж:
Бабе-Яге подарили большие песочные часы на 5 минут и маленькие — на 2 минуты. Зелье должно непрерывно кипеть ровно 8 минут. Когда оно закипело, весь песок в больших часах находился в нижней половине, а в маленьких — какая-то (неизвестная) часть песка в верхней, а остальная часть — в нижней половине. Помогите Бабе-Яге отмерить ровно 8 минут.
(Песок всё время сыплется с постоянной скоростью. На переворачивание часов время не тратится.)

★★★★★

Последнее исправление: TheAnonymous (всего исправлений: 1)

Яга не может 4 по 2?

Deleted
()

Переворачиваем большие, пока они работают, во вторых часах весь песок опустится. После этого переворачиваем маленькие часы, после того, как они отмерят 2 минуты, переворачиваем их снова и после того, как они наполовину отработают, вырубаем огонь под зельем.

derlafff ★★★★★
()

есть 5 и 2;
5 - 2 = 3;
5 + 3 = 8;
Где-то сдесь кроется разгадка. Думать лень. Задача слишком проста. :-(

Bad_ptr ★★★★★
()
Ответ на: комментарий от derlafff

>наполовину отработают
Ты это точно отследить не сможешь.

Bad_ptr ★★★★★
()

Бабе-Яге выговор за плохую организацию технологического процесса.

abraziv_whiskey ★★★★★
()

> Зелье должно непрерывно кипеть ровно 8 минут

маленькие — на 2 минуты

На переворачивание часов время не тратится

4 раза использовать маленькие часы.

Urchin ★★★
()
Ответ на: комментарий от Bad_ptr

Помимо 5 и 2 есть ещё х — число минут которое уже было насчитано на 2х-минутных часах. Но мне думать лень :3

PolarFox ★★★★★
()
Ответ на: комментарий от Bad_ptr

А не. Тупая баба яга сотворила какую-то глупость.

весь песок в больших часах находился в нижней половине, а в маленьких — какая-то (неизвестная) часть песка в верхней, а остальная часть — в нижней половине.

Bad_ptr ★★★★★
()

> Помогите Бабе-Яге

Для доброго молодца
помощь нечистой силе
категорически не засчитывается
как тимуровский поступок.

Что же сделают с бабой ягой
Михаил Квакин, особенно выпив зелье,
обсуждать запрещено
правилами форума.

На месте же бабы Яги следует не доверять проходимцам,
а освоить гугл:
http://otvet.mail.ru/answer/351379777/

StrongDollar
()

налепить на маленькие часы бумажку в месте, где находится песок.

dikiy ★★☆☆☆
()

если маленькие часы положить на бок - через минуту будет в каждом отсеке песка поровну?

belka
()
Ответ на: комментарий от belka

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

Тут надо с уравнениями как-то, чтобы x вычислить.

dikiy ★★☆☆☆
()
Ответ на: комментарий от belka

или наоборот, часы очень большие и когда их на бок положить - таймер останавливается? или от этого решение не зависит?

belka
()
Ответ на: комментарий от dikiy

совсем не есессно. представь часы в которых входит песка на две минуты, но при этом радиус внутренностей значительно больше высоты всего песка

belka
()
Ответ на: комментарий от belka

если маленькие часы все таки имеют по половине содержимого в отсеках когда их на бок положили - то все просто. запускаем большие, одновременно маленькие на бок. проходит 5 минут. ставим маленькие, проходит минута, переворачиваем маленькие.

belka
()
Ответ на: комментарий от StrongDollar

Для Ъ

на этот момент-в малых сверху-х внизу-у запускаем большие.малые кончаются-ложим на бок большие-внизу у них-х.запускаем малые-по полной-пройдет 2+х времени. переворочиваем малые.переворачиваем большие.большие заканчиваются-через х-прошло 2+2х времени. переворачиваем все-на у времени-в итоге-2+2х+у. у пройдет-ложим на бок большие-там-у. переворачиваем малые. ждем-пройдет 2+2х+у+2. ставим большие-ждем у в итоге4 +2*(х+у)=8. как то так.

Мне здесь ненравится хотябы вот это утверждение, например «большие заканчиваются-через х-прошло 2+2х времени.» Какой-то бред.

Bad_ptr ★★★★★
()
Ответ на: комментарий от belka

>если маленькие часы все таки имеют по половине содержимого в отсеках когда их на бок положили

а если не имеют?

dikiy ★★☆☆☆
()
Ответ на: комментарий от TheAnonymous

> так часы по 2 не на нуле в самом начале

да нет же, маленькие часы не на нуле в конце.

static_lab ★★★★★
()
Ответ на: Для Ъ от Bad_ptr

Да и вообще, гад ты, Bad_ptr. Малину всю испортил.

dikiy ★★☆☆☆
()

Перевернуть большие часы, маленькие остановить (положить набок). По окончанию песка в болших, запустить маленькие, а потом ещё 2 мин и к столу.

ados ★★★★★
()

возьмем время, которое осталось в маленьких часах за х. Пусть они продолжают идти, в это время запускаем большие. Когда закончатся маленькие часы - пройдет х - переворачиваем все часы. Когда закончатся большие часы - пройдет 2х, в маленьких останеться 2-х - переворачиваем все часы. Когда закончатся маленькие часы - пройдет 2х+2-х - переворачиваем только большие часы. Когда кончатся большие часы - пройдет 2х+4-2х. Теперь два раза переворачиваем маленькие, пройдет 8.

belka
()
Ответ на: комментарий от Bad_ptr

>>2+x+x=2+2x

И что?

что, что?

там же все написано.

в результате выходит, что пройдет времени 4+2(x+y), с учетом того, что x+y=2 получим 8. Прочитай еще раз внимательно последовательность действий.

dikiy ★★☆☆☆
()
Ответ на: комментарий от belka

Когда закончатся большие часы - пройдет 2х, в маленьких останеться 2-х - переворачиваем все часы

ошибся, здесь надо только большие перевернуть

belka
()
Ответ на: комментарий от Bad_ptr
5*(1     +  1    +     )
2*(1+1+.5+  стоп + .5+1)
   |--v--|  |----v----|
    закипает    кипит
ados ★★★★★
()
Ответ на: комментарий от belka

значит в маленьких осталось х минут.

Они продолжают идти, запускаем большие.

Маленькие остановились - прошло х минут, переворачиваем все часы, в больших сейчас как раз х минут.

Большие закончились - прошло 2х минут, в маленьких осталось 2-х, переворачиваем большие.

Маленькие кончились, прошло 2х+2-х, в больших сейчас 2-х. Переворачиваем большие.

Большие кончились - прошло 2х+4-2х. Все , теперь два раза запускаем маленькие.

Теперь вроде правильно написал, ничего на бок класть не нужно

belka
()

Я нашел этой задаче поистине чудесное решение для x < 1, но этот text input слишком маленький для него.

Решение для x >= 1 наверняка аналогичное, где x часть песка в нижней половине маленьких часов

rival ★★
()

Элементарно, ватсон. Переворачиваешь одновременно часы на 2 и 5 минут, кода на 2-минутных кончается песок начинаешь делать то-там надо, получается 3 минуты + 5 минут на еще одно переворачивание

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от belka

>если маленькие часы положить на бок - через минуту будет в каждом отсеке песка поровну?
Ты песочные часы вообще хоть раз видел?

kernelpanic ★★★★★
()
Ответ на: комментарий от ados

>Перевернуть большие часы, маленькие остановить (положить набок). По окончанию песка в болших, запустить маленькие, а потом ещё 2 мин и к столу.

Это прокатит в реальном мире а не в сказочном

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от kernelpanic

во-первых, решение без переворачиваний на бок я выше написал уже. во-вторых, конечно, песочные часы я думаю тут видел ты и только ты. Проповорот на бок - первое что пришло в голову когда надо было отмерить одну минуту, и такие часы вполне могут существовать.

хотя вот такие комментарии просто убивают. Ну напиши, «по-моему такие часы существовать не могут», но нет

belka
()

тред не читал

Пересыпаем неизвестное x в большие, переворачиваем оба часов :D высыпаем x во второй раз, остается y в маленьких, высыпаем теперь уже y в большие (меленькие пустые), потом большие на бок, сыпем 4 минуты мелкими, потом высыпаем y из больших и одновременно отмеряем y в маленькие. Т.е. ну высыпаем в конце два раза y..

просто же, ну!

Sonsee
()
Ответ на: комментарий от DNA_Seq

Это прокатит в реальном мире а не в сказочном

Ну если часы останавливать нельзя, то как же тогда возможно решить задачу?

Sonsee
()
Ответ на: комментарий от Sonsee

Я про то что при описанном способе погрешность будет около 30 секунд. В реальном мире больше потребуется на манипуляции с часами но мы ведь в сказочном =)

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от belka

значит в маленьких осталось х минут.

Они продолжают идти, запускаем большие.

Маленькие остановились - прошло х минут, переворачиваем все часы, в больших сейчас как раз х минут.

Большие закончились - прошло 2х минут, в маленьких осталось 2-х, переворачиваем большие.

Маленькие кончились, прошло 2х+2-х, в больших сейчас 2-х. Переворачиваем большие.

Большие кончились - прошло 2х+4-2х. Все , теперь два раза запускаем маленькие.

Теперь вроде правильно написал, ничего на бок класть не нужно

Чтобы получить 4 минуты нужно же 2x + (2 -x) + (2 - x), не?

Sonsee
()

посоны помогите не могу решить зодачу от нее мой брат моск сломал

У вас 2 ведра. Одно на 2 литра, другое на 5. Сколько у вас ведер?

dismal_faun ★★
()

>«Ведро́ (казённое ведро́) — русская дометрическая единица измерения объёма жидкостей, примерно равная 12,299 литрам.».

5+2 = 7 литров или 0,57 ведра :)

kss ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.