| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| Щас позвоню одногрупнику, нехай поглядит |
| Автор: Raven1986 18.12.2004, 09:12 |
| Да нет, условие тут немного другое! Бокалы стоят в ряд а не по кругу. Кто знает как сделать, помогите, пожалст. |
| Автор: Vladimir13 18.12.2004, 09:58 |
| Raven1986 и mr. Borland включите воображение, без него в жизни, и в программировании в частности, никуда |
| Автор: mr. Borland 19.12.2004, 11:20 |
| Raven, тебе что сложно ряд бокалов в круг поставить? |
| Автор: Raven1986 22.12.2004, 09:23 |
| Слушай, Борладнд, завали сам знаешь что! Все сделано и все пучком! |
| Автор: Zero 22.12.2004, 12:22 | ||
Помоему, имелось ввиду не цензурное выражение. |
| Автор: Raven1986 18.1.2005, 11:37 |
| НУ имелось. И даже в виду... Но не сказалось ведь! |