Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 2 KB
PROGRAM karavan;
CONST
maxn = 100;
maxm = 5000;
VAR
inputFile, outputFile: STRING;
N, M: INTEGER;
v1, v2: ARRAY [1..maxm] OF BYTE;
n1, n2: ARRAY [1..maxm] OF INTEGER;
ido: ARRAY [1..maxn] OF INTEGER;
a, b: BYTE;
H: INTEGER;
PROCEDURE Betolt;
VAR
T: Text;
i: INTEGER;
BEGIN
Assign(T, inputFile);
Reset(T);
ReadLn(T, N, M);
FOR i:= 1 TO M DO
BEGIN
ReadLn(T, v1[i], v2[i], n1[i], n2[i]);
END;
ReadLn(T, a, b, H);
Close(T);
END;
FUNCTION Csokkent(k: INTEGER): BOOLEAN;
VAR
startnap: INTEGER;
start, cel: BYTE;
BEGIN
start := v1[k];
cel:= v2[k];
IF (ido[start] > n2[k]) OR (ido[start] = -1) THEN
BEGIN
csokkent:= FALSE
END
ELSE
BEGIN
IF ido[start] <= n1[k] THEN startnap:= n1[k]
ELSE startnap:= ido[start];
IF (startnap + 1 < ido[cel]) OR (ido[cel] = -1) THEN
BEGIN
ido[cel]:= startnap + 1;
Csokkent:= TRUE;
END
ELSE Csokkent:= FALSE;
END;
END;
FUNCTION Leghamarabb(t: INTEGER): INTEGER;
VAR
i: INTEGER;
kesz: BOOLEAN;
BEGIN
FOR i:= 1 TO N DO ido[i]:= -1;
ido[A]:= t;
REPEAT
kesz:= TRUE;
FOR i:= 1 TO M DO
BEGIN
IF Csokkent(i) THEN kesz:= FALSE;
END;
UNTIL kesz;
IF ido[B] = -1 THEN Leghamarabb:= -1
ELSE Leghamarabb:= ido[B] - 1;
END;
PROCEDURE Megold;
VAR
T: Text;
lh, lh0, leg_rovidebb, leg_kesobb, utso, i: INTEGER;
BEGIN
lh0:= Leghamarabb(1);
utso:= n2[1];
FOR i:= 2 TO M DO
BEGIN
IF n2[i] > utso THEN utso:= n2[i];
END;
leg_rovidebb:= -1;
leg_kesobb:= -1;
lh:= lh0;
FOR i:= 1 TO utso DO
BEGIN
IF (i > 1) AND (lh <> -1) THEN lh:= Leghamarabb(i);
IF lh > -1 THEN
BEGIN
IF (lh <= H) AND (i > leg_kesobb) THEN leg_kesobb:= i;
IF (lh - i + 1 < leg_rovidebb) OR (leg_rovidebb = -1) THEN
leg_rovidebb:= lh - i + 1;
END;
END;
Assign(T, outputFile);
Rewrite(T);
WriteLn(T, lh0);
WriteLn(T, leg_rovidebb);
WriteLn(T, leg_kesobb);
Close(T);
END;
PROCEDURE Foprog;
VAR
i: BYTE;
BEGIN
BEGIN
Write('sorszam: '); ReadLn(i);
inputFile:= 'karavan.be'+CHR(i+ORD('0'));
outputFile:= 'karavan.k'+CHR(i+ORD('0'));
WriteLn('bemenet: ', inputFile);
WriteLn('kimenet: ', outputFile);
Betolt;
Megold;
END;
END;
BEGIN
Foprog;
END.