A nullás bolt az origóban van, és nem árul semmit.
Eljárás RészKiszámol(Bolt, TermékHalmaz)
Részkiszámol := Kombinál(Bolt, TermékHalmaz, TermékHalmaz, 0, Hamis)
Eljárás Vége
Eljárás Kombinál(Bolt, RégiTermékHalmaz, TermékHalmaz, pos, Romlandó)
Ha pos > MaxItems Akkor
Ha RégiTermékHalmaz = TermékHalmaz és Bolt > 0 Akkor
Kombinál := VÉGTELEN;
Különben
Ha TermékHalmaz = ÖsszesTermék Akkor
Kombinál:= Távolság(Bolt, 0)
Különben
Kombinál:= VÉGTELEN;
Ciklus KövBolt:= 1-től MaxBolt-ig
Ha Bolt <> KövBolt Akkor
X:= RészKiszámol(KövBolt, TermékHalmaz)+Távolság(Bolt, KövBolt, Romlandó)
Ha X < Kombinál Akkor Kombinál := X;
Elágazás Vége
Ciklus Vége
Elágazás Vége
Elágazás Vége
Különben
Kombinál := Kombinál(Bolt, KövBolt, TermékHalmaz, pos+1);
Ha items[pos] = Hamis és bolt_items[bolt][pos] = Igaz Akkor
Aktuális := Kombinál(Bolt, RégiTermékHalmaz, TermékHalmaz + termék(pos), pos+1, Romlandó vagy romlandó[termék]);
Ha Aktuális < Kombinál Akkor Kombinál := Aktuális;
Elágazás Vége
Elágazás Vége
Eljárás Vége