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\cross2 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 poslepoteza, 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