)) and Pattern.Kind [P ^. Kind] then {не повторюється рейс і сответствует тип перевезення}  
 begin 
  I: = 1; {Пошук серед міст прямування початковий пункт} 
  While (I 
 Pattern.BCity) do inc (I); 
  If CityInPath (P ^. path, I) ^. City = Pattern.BCity then begin {Якщо початковий знайдений} 
  NPattern: = Pattern; {Підготовка нового шаблону і нової пересадки} 
  if Npattern.reboading> 1 then dec (Npattern.reboading); 
  Npath ^. flight: = P; 
  For K: = 1 to Mclass do Npath ^. Cost [k]: = 0; 
  Npath ^. bcity: = pattern.bcity; 
  Npath ^. Ddelay: = DepartureDelay (P, I, Pattern.delay); 
  Npath ^. waytime: = 0; 
  J: = I; 
  Repeat {перегляд наступних міст} 
  Inc (J); 
  {Внесення виправлень в шаблон і елемент маршруту про ціну і часу} 
  For K: = 1 to MClass do If Pattern.Class [K] and P ^. Class [K] then 
  Npath ^. Cost [k]: = Npath ^. Cost [k] + CityInPath (P ^. Path, J) ^. Cost [K]; 
  Npath ^. Waytime: = Npath ^. Waytime + CityInPath (P ^. Path, J) ^. Delay; 
  Npath ^. target: = CityInPath (P ^. path, J) ^. City; 
  NPattern.Bcity: = CityInPath (P ^. Path, J) ^. City; 
  Npattern.WayTime: = Pattern.WayTime-Npath ^. Ddelay-Npath ^. Waytime; 
  Npattern.Delay: = (pattern.Delay + Npath ^. Ddelay + Npath ^. WayTime) mod 10080; 
  B1: = Posible (Path, CityInPath (P ^. path, J) ^. City) and (NPattern.WayTime> = 0); 
				
				
				
				
			  {Перевірка: не перевищено ліміти часу і вартості і немає повтору шляху} 
  B2: = CityInPath (P ^. Path, J) ^. City = Pattern.ECity; {приїхали?} p> {Якщо не приїхали і лімітів не перевищені то робимо рассмотроім маршрути від поточного до кінцевого міст} 
  if B1 and (not B2) and (Pattern.reboading> 1) then Search (FlightList, Npattern, Npath); 
  Npath ^. Waytime: = Npath ^. Waytime + CityInPath (P ^. Path, J) ^. Reboard; 
  Until (not B1) or B2 or (J> = P ^. TotalStation); {Виходимо, якщо є порушення або рейс закінчився або прехал} 
  If B2 and B1 then Answer (Npath, pattern.cost); {Якщо приїхали, додати маршрут до списку} 
  end {знайдений початковий місто} 
  end; {маршрут підходить за типом} 
  P: = P ^. next; {перехід до следущему циклу} 
  end; 
  Dispose (NPath) 
  end; 
   {Завантаження вихідних даних з файлу} 
  Function Load (A: PFlight; FName: String; var City: cities): PFlight; 
  Var 
  Source: Text; P: Pflight; I: WayClass; J, MC: CityCode; K: byte; 
  C: char; Q: Pway; G, L: DayTable; D: string [8]; 
  Begin 
  Assign (Source, FName); 
  Reset (Source); 
  readln (Source, MC); {Кількість міст} 
  {Зчитування назва міст і координат на мапі} 
  For J: = 1 to MC do begin ReadLn (source, City [j]. Name); readln (source, city [j]. X, city [j]. Y) end; 
  While Not EOF (Source) ...