Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Игра в фишки

(Время: 1 сек. Память: 16 Мб Сложность: 48%)

Сопоставим каждой фишке первого цвета число 3, каждой фишке второго цвета – число 5, третьего - 6. Теперь определим число S, как:

где ⊕ - это битовая операция «xor». Одним из свойств операции «xor», которое нам понадобится, является следующее: a ⊕ a = 0. Заметим, что числа 3, 5, 6 были выбраны не случайно, так как

Пусть теперь мы заменили две фишки одного цвета на фишку другого цвета. Учитывая выше сказанное, понятно, что число S от этого не изменилось. Теперь рассмотрим позиции, когда игра «сыграна». В этих позициях S принимает три возможных значения: 3, 5, 6. Таким образом, задача свелась к нахождению числа S (игра может быть сыграна, если S = 3, 5 или 6), которое легко посчитать, используя свойство операции «xor»: a ⊕ a = 0.

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

Разбор: Александр Торопов.

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru