N-am citit restricția respectivă considerând că oricum nu are de ce să se întoarcă (iar în afară de cazul în care se întoarce în prima intersecție, nu are de ce să se întoarcă).
Ca o optimizare a soluției oficiale, nu are sens să reținem maximul pentru un triplet (i, j, k), ci doar pentru perechea (i, j), întrucât direcția din care se vine nu are relevanță decât pentru a calcula cât timp stă la semafor. De aceea, când trece dintr-o stare în alta, se poate calcula timpul noii stări ca fiind timpul vechii stări + timpul cât stă la semafor în noua stare + 1. Deși complexitatea teoretică este tot O(N*M), în realitate merge mult mai repede (sub 0,2 secunde).
P.S. Linku către problemă din primul post este greșit (scrie infoarnea în loc de infoarena).