O idee "interesanta" pt aceasta problema.
Imparti nodurile de interes random in doua multimi A si B. Faci un BFS pornind simultan din toate nodurile din A iar raspunsul furnizat este cel distanta cea mai scurta catre un nod din B.
Hai sa analizam un pic rezolvarea aceasta. Daca nodurile care dau distanta optima sunt x si y, atunci daca la imparteala noastra random nodurile x si y sunt in multimi diferite, rezultatul furnizat de solutia noastra este chiar raspunsul la problema. Probabilitatea ca x si y sa fie in multimi diferite este evident 1/2. Asadar, algoritmul nostru are probabilitate de esec de 1/2. Cu alte cuvinte, daca repetam algoritmul de P ori, probabilitatea de esec este (1/2)^P. Ca punct de reper, asta inseamna de exemplu ca pentru P = 10, algoritmul esueaza doar o data din 1024 de incercari.
Cum pe infoarena sunt ~10 teste, P=4 sau P=5 ar trebui sa asigure 100 de puncte in majoritatea cazurilor. Eu am trimis cu P=7 to make sure si a intrat

Complexitatea este evident O(P * (M + N)) pentru ca realizam P BFS-uri, dar trebuie tinut cont ca constanta acestui algoritm este in general mai mica decat o rezolvare "normala", asa ca in practica acest algoritm scoate timpi comparabili cu rezolvarea optima.