Eu nu am participat, dar am citit problemele A si E. E nu mi s-a parut asa de grea, cel putin la prima vedere. Ma gandisem la o dinamica: M(i) = cate numere poti forma cu exact i bete de chibrit. Acum tu incerci sa adaugi cifrele de la 0 la 9. Sa zicem ca cifra x este formata din bete(x) bete de chibrit. Ai relatia de recurenta:
M(i) = suma(M(i-bete(x))), x de la 0 la 9.
Rezultatul va fi in M(1) + M(2) + ... + M(N).
Am citit acum si D.
Complexitate: O(N^2). Cel mai simplu mi se pare asa: faci un nou graf cu noduri de forma: (x nr), cu semnificatia ca te afli in graful initial in nodul x si ai ajuns aici folosind de nr ori Commercial Express. Evident, nr poate fi 0 sau 1 ( nu poti folosi tipul ala special decat cel mult o data ), deci ai exact 2N noduri in noul tau graf. Muchiile in graful nou: pui muchie de la (x 0) la (y 0) si de la (x 1) la (y 1) egala cu costul muchiei de la x la y pentru Economy-Xpress. De la (x 0) la (y 1) pui muchia de cost egal cu costul dintre x si y in Commercial-Xpress. Numarul tau de muchii va fi deci 2M + K.
Acum faci un Djikstra de sursa (S 0). Afisezi minimul pentru destinatia (E 0) ( caz in care nu folosesti biletul ala ) sau destinatia (E 1) ( caz in care il folosesti ).
Nu m-am gandit foarte mult la ele, sper ca nu m-am grabit cu explicatiile
.