Potrebna mi je pomoć oko ideje za ovaj zadatak. Na umu mi je da predstavim mapu kao graf i da uradim DFS i beležim koliko najviše čvorova mogu da “pokupim” od svakog čvora koji potiče od root-a, uzimajući u obzir da će za nekoliko koraka T biti zatvoren put između dva čvora zbog “N” polja na mapi. (obzirom da u zadatku programi moraju da kreću iz polja “S” i ne smeju da se preklapaju sa drugim tačkama), ali nisam siguran da li ova ideja uopšte ide u dobrom smeru.
Bilo kakav hint bi mi bio dobrodošao.
Hvala unapred!
Programi smeju da se preklapaju sa drugim programima istog korisnika, tako da Perici uvek odgovara da pokrene puno programa na pocetku (po jedan za svako slobodno polje), i da se njegovi programi sire na sva susedna slobodna polja svaki potez – efektivno, polja koja on zauzima se ponasaju kao BFS.
Na ovaj BFS jos treba dodati sirenje Nikolajevih programa. Ovde ima par opcija za implementaciju – na primer, jedna je da se pamti koliko je poteza proslo od pocetka partije, i da se svaki put kada se ovaj broj poveca pomere svi Nikolajevi programi. Alternativno, svi oni se mogu ubaciti u isti queue koji se koristi za Pericine (na kraj, tako da se Pericini prvi pomeraju), sa dodatnom promenljivom koja oznacava pravac u kom se program sme kretati (“svi pravci” za Pericu, “gore/dole/levo/desno” za Nikolaja).