Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj potřebovala bych hodně pomoc s tímto zadáním:
Máte zadanou mapu státu, ve kterém jsou jména města očíslována od 1 až do N (počtu měst). Některá z měst jsou propojena obousměrnými silnicii. Určete nejkratší vzdálenost mezi dvěma městy (každá silnice má udanou vzdálenost v kilometrech).
Formát vstupu:
V textovém souboru mapa.in je na prvním řádku uveden počet měst N ≤ 1000 na mapě, na dalších řádkách až do konce souboru jsou vždy uvedeny trojice celých čísel ve tvaru A B D, kde A a B jsou koncová města silnice a D je délka této silnice (v obou směrech stejně dlouhá, 1 ≤ D ≤ 100). Mezi dvěmi městy vede maximálně jedna přímá silnice.
V textovém souboru dotazy.in jsou uvedeny dotazy na vzdálenosti mezi městy. Na každém řádku souboru je uvedena dvojice čísel A B (jména výchozího a cílového města). Délka cesty mezi dvěmi libovolnými městy se vejde do Pascalovského integeru.
Formát výstupu:
Do textového souboru delky.out zapište na každý řádek délku cesty mezi městy na odpovídající řádce souboru dotazy.in. Pokud cesta neexistuje, vypište místo délky cesty číslo -1.
Příklad:
mapa.in
4
1 2 4
3 2 5
1 3 12
dotazy.in
1 2
3 1
4 2
delky.out
4
9
-1
potřebovala bych to vysvětlit jak na to, co nejjednodušeji pro pochopení, vůbec si s tím nevím rady :/ Má se zde uplatnit Dijkstrův algoritmus. Platím zlatem ;)
Offline
Ano, toto je naprosto přímočarý úkol. Stačí do googlu zadat třeba "dijkstra algorithm implementation" nebo "a star algorithm implementation" + název jazyka. Nebo hledat samostatně bez implementace a vyskočí spousty článků s vysvělením.
Nemá tedy smysl opakovat něco, co bylo mnohokrát popsáno. Případné zlato by tak bylo prodáno dost levně.
Offline