Editorial for Zaboravljena
Submitting an official solution before solving the problem yourself is a bannable offence.
Za početak, treba odrediti da li je uopšte moguće generisati tablu
kakva se traži u zadatku. Ukoliko , očigledno nije, jer ni
jedan igrač neće stići da postavi simbola neophodnih za pobedu. U
suprotnom, rešenje uvek postoji (što će biti jasno iz algoritma koji ga
generiše), osim ukoliko je i . Da bi dokazali da u ovom slučaju nema rešenja, možemo
podeliti tablu na \(2 \cross 2\) kvadrate i primetiti da pre poslednjeg
poteza u svakom od njih može biti najviše jedan X
i jedan O
.
Rešenje za proizvoljno možemo napraviti od rešenja gde (X
pobeđuje u poslednjem potezu), odnosno T = N \cdot \lceil \frac{N}{2}
\rceil + 1K = 2~, na sledeći način:
- ukoliko je parno (
O
treba da pobedi), zamenimo sveX
saO
i obrnuto, - izračunamo koliko će
X
iO
biti na tabli posle poteza, i - brišemo simbole dok ne ostane očekivan broj, vodeći računa da ne obrišemo nijedan iz niza od uzastopnih zbog kog je jedan od igrača pobedio.
Ostaje samo da konstruišemo takvo rešenje. Ovo ćemo uraditi odvojeno za tri slučaja: , i
Tablu možemo popuniti na sledeći način (naizmenični X
i O
) u
svakom drugom redu (primer za ):
XOXOXOX
*......
OXOXOXO
.......
XOXOXOX
.......
OXOXOXO
Igrač koji igra poslednji potez igra na polje obeleženo sa *
.
Počećemo od table na kojoj ni jedan igrač ne pobeđuje:
xOXOXOX
XoXOXOX
OXOXOXO
OXOXOXO
XOXOXOX
XOXOXOX
OXOXOXO
Primetimo da, ukoliko zamenimo polja i (obeležena malim
slovima), dobijamo tablu na kojoj X
pobeđuje u poslednjem potezu ako
"za kraj" ostavi .
Slično kao za , počećemo od table u kojoj niko ne pobeđuje, koju konstruišemo na sledeći način:
- U prvom redu imamo simbola
X
, zatim jedanO
, pa opetX
, i tako dalje. - Drugi red je isti, sa zamenjenim
X
iO
. - Dalje redove pravimo naizmeničnim ponavljanjem ova dva.
- Ukoliko je neparno, da bi imali očekivani broj
X
iO
, poslednji red čine naizmeničniX
iO
.
Na primer, za :
XXXXoxX
OOOOXOO
XXXXOXX
OOOOXOO
XXXXOXX
OOOOXOO
XOXOXOX
Slično kao u prošlom slučaju, možemo zameniti prvi O
sa X
koji se
nalazi posle njega i dobiti poziciju u kojoj X
"čuva" potez
za kraj i pobeđuje u poslednjem potezu.
Ukoliko , ne možemo zameniti ova dva simbola (jer nema ničeg
desno od tog O
). U ovom slučaju, nije teško videti da umesto toga
možemo zameniti prvi O
sa poljem .
Comments