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: 1 KB
PROGRAM Terem;
CONST
maxn = 1000;
ch = '1';
inputFile = '';
outputFile = '';
TYPE
esemeny = RECORD
A, B: INTEGER;
id, terem: INTEGER;
END;
VAR
N, T: INTEGER;
esem: ARRAY [1..maxn] OF esemeny;
terem: ARRAY [1..maxn] OF BOOLEAN;
PROCEDURE Load;
VAR
T: Text;
i: INTEGER;
BEGIN
Assign(T, inputFile);
Reset(T);
ReadLn(T, N);
FOR i:= 1 TO N DO
BEGIN
ReadLn(T, esem[i].A, esem[i].B);
esem[i].id:= i;
END;
Close(T);
END;
PROCEDURE Main;
VAR
i, j, T0: INTEGER;
E: Esemeny;
BEGIN
FOR i:= 1 TO N DO
BEGIN
FOR j:= i+1 TO N DO
BEGIN
IF (esem[i].A > esem[j].A) THEN
BEGIN
E:= esem[i]; esem[i]:= esem[j]; esem[j]:= E;
END;
END;
END;
T:= 0;
FOR i:= 1 TO N DO
BEGIN
FOR j:= 1 TO i DO terem[j]:= TRUE;
FOR j:= 1 TO i-1 DO
BEGIN
IF (esem[i].A <= esem[j].B) THEN terem[ esem[j].terem ]:= FALSE;
END;
T0:= 1;
WHILE (terem[T0] = FALSE) DO INC(T0);
esem[i].terem:= T0;
IF T0 > T THEN T:= T0;
END;
END;
PROCEDURE Save;
VAR
Te: Text;
i, j: INTEGER;
BEGIN
Assign(Te, outputFile);
Rewrite(Te);
WriteLn(Te, T);
FOR i:= 1 TO T DO
BEGIN
FOR j:= 1 TO N DO
BEGIN
IF esem[j].terem = i THEN Write(Te, esem[j].id, ' ');
END;
WriteLn(Te);
END;
Close(Te);
END;
BEGIN
Load;
Main;
Save;
END.