Rozgrywka ( omówienie )

06.08.2010

Pokażemy, że Hektor może wygrać grę niezależnie od ruchów Wiktora jeśli początkowa liczba kamieni jest niepodzielna przez K+1 i że Wiktor wygrywa w przeciwnym wypadku.

Jeśli liczba kamieni jest niepodzielna przez K+1 i ruch wykonuje Hektor, to do najbliższej liczby kamieni podzielnej przez K+1 może brakować zdjęcia 1, 2, ... albo K kamieni. Gracze zdejmują od 1 do K kamieni, więc Hektor może zdjąć tyle, ile trzeba, aby pozostawić Wiktorowi liczbę podzielną przez K+1. Wiktor może zdjąć co najwyżej K kamieni, więc po jego ruchu sytuacja się powtarza, tj. liczba kamieni jest niepodzielna przez K+1 i ruch wykonuje Hektor. Prędzej czy później kamienie się skończą, a Wiktor zawsze trafia na liczby podzielne przez K+1, więc w szczególności to on zastanie sytuację z liczbą kamieni równą 0, czyli przegra.

Jeśli liczba kamieni jest podzielna przez K+1, to tę samą strategię może zastosować Wiktor.

1
2
3
4
int n, k;
scanf("%d %d", &n, &k);
if ( n%(k+1) == 0 ) printf("Wiktor\n");
else printf("Hektor\n");

Organizatorzy:

Wrocławski Portal Informatyczny Instytut Informatyki Uniwersytet Wrocławski Wrocław

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com