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 hegyseg;
CONST
inputFile = '';
maxn = 100;
VAR
N, M: INTEGER;
map: ARRAY [0..maxn+1, 0..maxn+1] OF RECORD
hi: INTEGER;
max: INTEGER;
END;
list: ARRAY [1..10001] OF RECORD
sor, oszlop: BYTE;
END;
PROCEDURE Load;
VAR
T: Text;
i, j: INTEGER;
BEGIN
FOR i:= 0 TO maxn+1 DO
BEGIN
FOR j:= 0 TO maxn+1 DO
BEGIN
map[i, j].hi:= -1;
map[i, j].max:= 0;
END;
END;
Assign(T, inputFile);
Reset(T);
ReadLn(T, N, M);
FOR i:= 1 TO N DO
BEGIN
FOR j:= 1 TO M DO
BEGIN
Read(T, map[i, j].hi);
map[i, j].max:= 0;
END;
ReadLn(T);
END;
END;
FUNCTION Terjeszt(VAR sp: INTEGER; i, j: BYTE): BOOLEAN;
VAR
i0, j0: BYTE;
BEGIN
i0:= list[sp].sor; j0:= list[sp].oszlop;
IF (map[i, j].hi > 0) AND (map[i, j].hi < map[i0, j0].hi) THEN
BEGIN
IF sp > map[i, j].max THEN
BEGIN
map[i, j].max:= sp;
INC(sp);
list[sp].sor:= i; list[sp].oszlop:= j;
Terjeszt:= TRUE;
EXIT;
END;
END;
Terjeszt:= FALSE;
END;
PROCEDURE Process;
VAR
i, j, s, o: BYTE;
max_i, max_j: INTEGER;
sp: INTEGER;
BEGIN
FOR i:= 1 TO N DO
BEGIN
FOR j:= 1 TO M DO
BEGIN
IF (map[i+1, j].hi > map[i, j].hi) OR
(map[i-1, j].hi > map[i, j].hi) OR
(map[i, j+1].hi > map[i, j].hi) OR
(map[i, j-1].hi > map[i, j].hi) THEN CONTINUE;
list[1].sor:= i; list[1].oszlop:= j;
sp:= 1;
WHILE sp > 0 DO
BEGIN
s:= list[sp].sor; o:= list[sp].oszlop;
IF Terjeszt(sp, s+1, o) THEN CONTINUE;
IF Terjeszt(sp, s-1, o) THEN CONTINUE;
IF Terjeszt(sp, s, o+1) THEN CONTINUE;
IF Terjeszt(sp, s, o-1) THEN CONTINUE;
DEC(sp);
END;
END;
END;
max_i:= 1; max_j:= 1;
FOR i:= 1 TO N DO
BEGIN
FOR j:= 1 TO M DO
BEGIN
IF map[i, j].max > map[max_i, max_j].max THEN
BEGIN
max_i:= i;
max_j:= j;
END;
END;
END;
WriteLn(map[max_i, max_j].max);
WriteLn(max_i, ' ', max_j);
END;
BEGIN
Load;
Process;
END.