10771. Варварские племена
На потерянной земле существуют
два племени: Гареды и Кека. Они каждый год исполняют следующий ритуал: по кругу
становятся n мужчин из племени Гаред (занумерованных 1, 2, ..., n)
и m мужчин из племени Кека (они имеют номера n + 1, n + 2,
…, n + m). Затем гуру этих племен начинает считать 1, 2, ..., k
начиная с номера 1. Каждого k - ого приносят в жертву. После принесения
в жертву очередных двух жителей на место второго ставят мужчину из племени,
которое выбирается по правилу: если принесены в жертву двое из одинаковых
племен, то выбирается мужчина из племени Гаред, если из разных – то из Кека. Процесс
двух последовательных жертвоприношений и введения нового человека в круг
составляют один раунд. После выполнения каждого раунда количество людей в кругу
уменьшается на 1. Ритуал заканчивается, когда после очередного завершенного
раунда в кругу останется один человек. Необходимо определить его племя.
Вход.
Каждый тест в одной строке содержит три числа n, m, k (1 £ n + m £ 2000, 1 £ k £ 1000). Случай n = m
= k = 0 обозначает конец тестов и не обрабатывается.
Выход. Для каждого теста вывести имя
племени выжившего: Keka или Gared.
3 3 2
4 2 2
0 1 7
0 0 0
Keka
Gared
Keka
математика + логика
После каждого раунда количество людей в кругу
уменьшается на 1. Посмотрим, как будет изменяться количество людей из племен в
кругу после каждого раунда.
типы раундов |
превая жертва |
вторая жертва |
введенный |
изменение Гаред |
изменение Кека |
1 |
Gared |
Gared |
Gared |
-1 |
0 |
2 |
Gared |
Keka |
Keka |
-1 |
0 |
3 |
Keka |
Gared |
Keka |
-1 |
0 |
4 |
Keka |
Keka |
Gared |
+1 |
-2 |
После каждого раунда количество
мужчин из племени Кека изменяется либо на 0, либо на 2. То есть их четность не
меняется. В конце ритуала остается один человек. Следовательно, если последним
останется представитель Кека, то изначально количество мужчин из Кека было
нечетным. С другой стороны в конце останется представитель Гаред, если только
число людей из Кека в начале было четным.
Рассмотрим входные данные для
первого теста. Изначально в кругу стоят GGGKKK (G – Гаред, K – Кека).
Последовательность раундом жертвоприношений приведена в таблице (человек, с
которого начинается отсчет, подчеркнут):
состояние круга |
первая жертва |
вторая жертва |
новый введенный |
GGGKKK |
GGGKKK |
GGGKKK |
GGKKK |
GGKKK |
GGKKK |
GGKKK |
GKKK |
GKKK |
GKKK |
GKKK |
KKK |
KKK |
KKK |
KKK |
KG |
KG |
KG |
KG
|
K
|
Ответ задачи зависит от четности
количества людей в круге, представимых от племени Кека. То есть достаточно
проверить на четность значение m и вывести результат.
while(scanf("%d
%d %d",&n,&m,&k),n+m+k)
{
if (m % 2)
printf("Keka\n");
else
printf("Gared\n");
}