Fie un graf neorientat conex cu N vârfuri (numerotate de la 1 la N) şi M muchii. Se consideră de asemenea două mulţimi nevide X şi Y de vârfuri din acest graf, mulţimi care nu au vârfuri comune. Lungimea unui lanţ de la un vârf v1 la un vârf v2 este dată de numărul de muchii ale lanţului. Definim distanţa de la un vârf v la mulţimea Y ca fiind lungimea minimă a unui lanţ de la vârful v la un vârf din mulţimea Y.
Cerinţă
Să se determine distanţa de la orice vârf din mulţimea X la mulţimea Y.
Date de intrare
Fişierul grafxy.in conţine pe prima linie numerele naturale N şi M separate prin spaţiu. Pe următoarele M linii se află câte două numere naturale i şi j separate prin spaţiu reprezentând extremităţile unei muchii din graf. Pe linia M + 2 se găseşte un număr natural nx reprezentând numărul de vârfuri ale mulţimii X. Pe linia M + 3 se găsesc, separate prin spaţii, nx numere naturale în ordine crescătoare x1, x2, ..., xnx reprezentând vârfurile grafului care aparţin mulţimii X. Pe linia M + 4 se găseşte un număr natural ny reprezentând numărul de vârfuri ale mulţimii Y. Pe linia M + 5 se găsesc, separate prin spaţii, ny numere naturale în ordine crescătoare y1, y2, ..., ynyreprezentând vârfurile grafului care aparţin mulţimii Y.
Date de ieşire
Fişierul grafxy.out va conţine exact nx linii. Pe linia i (i = 1..nx) se găseşte un singur număr natural reprezentând distanţa de la vârful xi la mulţimea Y.
X = {1, 2, 3}, iar Y = {5, 6, 7}.
Distanţa de la vârful 1 la Y este 3, lanţul de lungime minimă fiind 1, 2, 4, 6 (deci 3 muchii).
Distanţa de la vârful 2 la Y este 2 (lanţul 2, 4, 5 sau lanţul 2, 3, 7), iar distanţa de la vârful 3 la Y este 1 (lanţul 3, 7)