Editorial for Zaboravljena


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

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 T < 2K-1, očigledno nije, jer ni jedan igrač neće stići da postavi K simbola neophodnih za pobedu. U suprotnom, rešenje uvek postoji (što će biti jasno iz algoritma koji ga generiše), osim ukoliko je K = 2 i T > N \cdot \lceil \frac{N}{2}
\rceil + 1. 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 T možemo napraviti od rešenja gde T = N^2 (X pobeđuje u poslednjem potezu), odnosno T = N \cdot \lceil \frac{N}{2} \rceil + 1 ako K = 2~, na sledeći način:

  • ukoliko je T parno (O treba da pobedi), zamenimo sve X sa O i obrnuto,
  • izračunamo koliko će X i O biti na tabli posle T poteza, i
  • brišemo simbole dok ne ostane očekivan broj, vodeći računa da ne obrišemo nijedan iz niza od K 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: K = 2, K = 3 i K > 3

K = 2

Tablu možemo popuniti na sledeći način (naizmenični X i O) u svakom drugom redu (primer za N = 7):

XOXOXOX
*......
OXOXOXO
.......
XOXOXOX
.......
OXOXOXO

Igrač koji igra poslednji potez igra na polje obeleženo sa *.

K = 3

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 (1,1) i (2,2) (obeležena malim slovima), dobijamo tablu na kojoj X pobeđuje u poslednjem potezu ako "za kraj" ostavi (2, 2).

K > 3

Slično kao za K = 3, počećemo od table u kojoj niko ne pobeđuje, koju konstruišemo na sledeći način:

  • U prvom redu imamo K-1 simbola X, zatim jedan O, pa opet K-1 X, i tako dalje.
  • Drugi red je isti, sa zamenjenim X i O.
  • Dalje redove pravimo naizmeničnim ponavljanjem ova dva.
  • Ukoliko je N neparno, da bi imali očekivani broj X i O, poslednji red čine naizmenični X i O.

Na primer, za N = 7, K = 4:

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 (1, K) za kraj i pobeđuje u poslednjem potezu.

Ukoliko N = K, 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 (3, 1).


Comments

There are no comments at the moment.