Informatika gyűjtemény

Egy szinttel feljebb fg_ute.pas

2004050607080910

NézetNyomtat

fg_ute.pas (Vissza)
Az alábbi letöltési lehetőségek közül választhatsz: (segítség)
Karakterkódolás:
Sortörés:
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
PROGRAM Utemez;
CONST
    maxn = 10000;
VAR
    inputFile, outputFile: STRING;

    N: INTEGER;
    kezd, bef, sorsz: ARRAY [1..maxn] OF INTEGER;

PROCEDURE Betolt;
VAR
    T: Text;
    i: INTEGER;
BEGIN
    Assign(T, inputFile);
    Reset(T);
    ReadLn(T, N);
    FOR i:= 1 TO N DO
    BEGIN
        ReadLn(T, kezd[i], bef[i]);
        sorsz[i]:= i;
    END;
    Close(T);
END; {Betolt}

PROCEDURE Kiir(szam: INTEGER);
VAR
    T: Text;
    i: INTEGER;
BEGIN
    Assign(T, outputFile);
    Rewrite(T);
    WriteLn(T, szam);
    FOR i:= 1 TO N DO
    BEGIN
        IF sorsz[i] < 0 THEN Write(T, -sorsz[i], ' ');
    END;
    Close(T);
END; {Kiir}

PROCEDURE Megold;
VAR
    tmp_bef, tmp_kezd, tmp_sorsz: INTEGER;
    i, j: INTEGER;
    szamol, szabad: INTEGER;
BEGIN
    FOR i:= 1 TO N DO
    BEGIN
        FOR j:= i+1 TO N DO
        BEGIN
            IF bef[i] > bef[j] THEN
            BEGIN
                tmp_kezd:= kezd[j]; tmp_bef:= bef[j]; tmp_sorsz:= sorsz[j];
                kezd[j]:= kezd[i]; bef[j]:= bef[i]; sorsz[j]:= sorsz[i];
                kezd[i]:= tmp_kezd; bef[i]:= tmp_bef; sorsz[i]:= tmp_sorsz;
            END;
        END;
    END;

    szamol:= 0;
    szabad:= 1;
    FOR i:= 1 TO N DO
    BEGIN
        IF kezd[i] >= szabad THEN
        BEGIN
            INC(szamol);
            szabad:= bef[i]+1;
            sorsz[i]:= -sorsz[i];
        END;
    END;
    Kiir(szamol);
END; {Megold}

PROCEDURE Main;
VAR
    id: BYTE;
BEGIN
    FOR id := 1 TO 8 DO
    BEGIN
        {Write('sorszam: '); ReadLn(id);}
        inputFile:= 'UTEMEZ.BE'+CHR(id+ORD('0'));
        outputFile:= 'UTEMEZ.K'+CHR(id+ORD('0'));
        Betolt;
        Megold;
    END;
END; {Main}

BEGIN
    Main;
END.
(Vissza)