Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
DIJKSTRA - Dijkstra |
Policz najkrótszą ścieżkę między podanymi wierzchołkami w danym grafie.
Wskazówka: Użyj algorytmu Dijkstry.
Wskazówka 2: set i cin/cout wystarczą wydajnościowo (sync_with_stdio(0)).
Wejście
pierwszy wiersz - liczba testów
Dla każdego testu podane są liczby V, K (liczba wierzchołków, liczba krawędzi),
a następnie w K wierszach podane są trójki liczb:
ai, bi, ci
Określają one, że graf zawiera krawędź skierowaną z ai do bi,
której waga to ci.
Pod tymi linijkami znajduje się para liczb A i B.
A to wierzchołek startowy, B - końcowy.
Liczby na wejściu są z zakresu 0..10000.
Wyjście
Należy podać dla każdego testu (w osobnych wierszach) liczbę C - długość najkrótszej ścieżki z wierzchołka A do B. Jeżeli w grafie nie istnieje ścieżka z A do B, dla tego testu program powinien wypisać słowo NIE
Przykład
Input: 3 3 2 1 2 5 2 3 7 1 3 3 3 1 2 4 1 3 7 2 3 1 1 3 3 1 1 2 4 1 3 Output: 12 5 NIE
Dodane przez: | Robert Rychcicki |
Data dodania: | 2008-11-21 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ADA95 ASM32 BASH BF C CSHARP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN GOSU HASK ICON ICK JAVA JS-RHINO LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON RUBY SCM guile SCM qobi ST WHITESPACE |