a [i];
min: = m
end;
function max (a: mcost): longint; {Максимальна вартість по класах}
var i: integer; m: longint;
begin
m: = a [1];
for i: = 2 to Mclass do if m = 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) do begin
New (P);
P ^. Next: = A;
A: = P;
{Загальна інформація про рейс}
ReadLn (Source, P ^. company);
ReadLn (Source, P ^. Number);
ReadLn (Source, P ^. Kind);
{Вартість кожного з класів}
For I: = 1 to MClass do begin Read (Source, C); P ^. Class [i]: = C = 'X' end;
ReadLn (Source, P ^. TotalStation);
New (P ^. Path);
Q: = P ^. path;
{інформація про міста прямування часу шляху, стоянках}
For J: = 1 to P ^. TotalSTation do begin
K: = ((J-1) mod 4) +1;
Read (Source, Q ^. Way [K]. City, Q ^. Way [K]. Delay, Q ^. Way [K]. Reboard);
For I: = 1 to MClass do If P ^. class [I] then Read (Source, Q ^. Way [K]. cost [I])
else Q ^. Way [K]. Cost [I]: = 0;
If (J mod 4) = 0 then begin
If (JP ^. TotalStation) then begin New (Q ^. Next); Q: = Q ^. Next end
else Q ^. Next: = nil;
end;
ReadLn (Source);
end;
New (P ^. Table);
G: = P ^. Table;
L: = G;
{Інформація про відправленні з початкового пункту}
While Not EOLn (Source) do begin
Read (Source, D);
G ^. Time: = (ord (D [1])-ord ('0 ') -1) * 1440 + ((ord (D [3])-ord ('0')) * 10 + ord (D [4])-ord ('0 ')) * 60
+ (Ord (D [6])-ord ('0 ')) * 10 + ord (D [7])-ord ('0');
if L ^. Time> G ^. Time then write ('Wrong data');
If not EOLn (Source) then begin New (G ^. Next); G: = G ^. Next end else G ^. Next: = nil;
end;
ReadLn (Source);
end;
Load: = A;
end;
const line = '----------------------------------------------- -----------------------...