Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- miasta =^ miasto
- miasto = record
- dystans: integer;
- LiczbaPkt: integer;
- miasta: next;
- end;
- procedure Poruszanie_Sie_Po_Liscie(var newlist: miasta); //porusza sie po liscie az nie zostana 2 miasta
- var odleglosc: integer;
- tmp, tmpprev: miasta;
- lider: miasta;
- begin
- while tmp^.next^.next <> tmp do
- begin
- tmp := miasta;
- odleglosc := tmp^.dystans;
- while odleglosc <> 0 do
- begin
- tmp := tmp^.next;
- tmp^.dystans := tmp^.dystans + odleglosc - 1;
- odleglosc := odleglosc - 1;
- end;
- tmpprev := tmp;
- tmp := tmp^.next;
- tmpprev^.next := tmp^.next;
- newlist^next := tmp;
- dispose(tmp);
- end;
- end;
- function Zlicz_Pkt(var newlist: miasta): miasta; //zlicza pkt wszystkich miast odwiedzonych
- var tmp, newlist, lider, rowne: miasta;
- begin
- rowne := newlist
- newlist := newlist^.next;
- while rowne <> newlist do
- begin
- while jakis tu warunek do
- begin
- if tmp^.dystans < newlist^.dystans then
- newlist^.LiczbaPkt := newlist^.LiczbaPkt + 1;
- tmp := tmp^.next;
- end;
- newlist := newlist^.next;
- if lider^.LiczbaPkt > newlist^.LiczbaPkt then
- lider := newlist;
- end;
- end;
- begin
- Poruszanie_Sie_Po_Liscie(newlist);
- Zlicz_Pkt(newlist);
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement