Zadatak Segfault

Pitanje ili opis problema

Zadatak sa kvalifikacija 2015. godine, Segfault (AB4)
>> Link do PDF-a zadatka <<

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. :smiley:
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).

1 Like

Jasno kao dan! Hvala puno na odgovoru!