Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Помогите перевернуть бокалы


Автор: mr. Borland 17.12.2004, 11:32
Оччень нужна помощь одногрупнику. Задача такая:
На столе стоят в ряд N бокалов, пронумерованных слева направо от 1 до N. Первоначально все бокалы стоят дном вниз. Над бокалами можно выполнить операцию переворот. За один переворот ровно M любых бокалов переворачиваются так, что те бокалы, которые стояли дном вниз, оказываются перевернутыми вверх дном, а остальные из M бокалов ставятся вниз дном. Требуется за минимальное количество переворотов добиться того, чтобы все бокалы оказались перевернутыми вверх дном, или определить, что это невозможно.

Алгоритм не должен использовать стандартный тип Set и простой перебор всех значений. Кто может, помогите плз.

Автор: Akina 17.12.2004, 11:51
Элементарно. На каждом шаге крутятся последовательные М бокалов начиная с первого незатронутого на предыдущем шаге (бокалы ставить в круг, или считать что они стоят кругом). Всего требуется (N / НОД(М,N)) переворотов. Задача решается только если количество проходов (М / НОД(М,N)) нечетно.

Автор: mr. Borland 17.12.2004, 18:20
Щас позвоню одногрупнику, нехай поглядит smile

Автор: Raven1986 18.12.2004, 09:12
Да нет, условие тут немного другое! Бокалы стоят в ряд а не по кругу.
Кто знает как сделать, помогите, пожалст.

Автор: Vladimir13 18.12.2004, 09:58
Raven1986 и mr. Borland включите воображение, без него в жизни, и в программировании в частности, никуда smile

Автор: mr. Borland 19.12.2004, 11:20
Raven, тебе что сложно ряд бокалов в круг поставить? smile Акина ж все верно говорит.

Автор: Raven1986 22.12.2004, 09:23
Слушай, Борладнд, завали сам знаешь что!
Все сделано и все пучком!

Автор: Zero 22.12.2004, 12:22
Цитата(Raven1986 @ 22.12.2004, 09:23)
... завали сам знаешь что!

Помоему, имелось ввиду не цензурное выражение. smile

Автор: Raven1986 18.1.2005, 11:37
НУ имелось. И даже в виду... Но не сказалось ведь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)