Trzy słowa o zadaniu 3 z I kolokwium z ASD 2010/2011
=====================================================

Zadanie było jednym z prostszych zadań z tego kolokwium.
Należało:
1. Odwrócić krawędzie wejściowego grafu, by zamiast d(v,s)
  liczyć d(s,v).
2. Puścić 3xDijkstrę startującą odpowiednio z s, r oraz t.
  Dijkstry te zapisują wyniki w osobnych tabelach ds, dr, dt.
3. Przejść wszystkie wierzchołki i wypisać tego z minimalnym
  ds[v] + dr[v] + dt[v].
Oto najczęstsze błędy:
A. Niezauważenie, że graf jest skierowany, i brak odwracania
  krawędzi grafu: zakładanie, że Dijkstra z s policzy d(v,s),
  a ona liczy d(s,v).
B. Użycie nieoptymalnej implementacji Dijkstry, czyli na zwykłym
  kopcu. Najszybsza jest na kopcach Fibonaciego, dająca czas
  O(n log n + m).
C. Brak analizy złożoności, lub zbycie ją stwierdzeniem "jak Dijkstra".
Jak w każdym bardzo prostym zadaniu, niestety za każde potknięcie
traci się dość dużo punktów.

Ogólny schemat oceniania:
0 pkt za niepoprawne rozwiązanie lub wolniejsze od n-krotna Dijkstra.
0.5 pkt za rozwiązanie robiące n-krotnie Dijkstrę (z każdego
    wierzchołka puszczamy Dijkstrę), używające kopców Fibonaciego
3 pkt za rozwiązanie wzorcowe, ale nie odwracające krawędzi grafu
5 pkt za rozwiązanie wzorcowe
Najczęstsze minusy:
-1 pkt za nieużycie kopców Fibonaciego w Dijkstrze
-1 pkt za stwierdzenie "złożoność jak u Dijkstry", bez powiedzenia,
  co to jest za złożoność
-1.5 pkt za brak analizy złożoności czasowej
-2 pkt za twierdzenie, że Dijkstra działa w czasie liniowym