Informatika gyűjtemény

Egy szinttel feljebb fg_virus2.pas

2004050607080910

NézetNyomtat

fg_virus2.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
{$R+} {$Q+}
PROGRAM Virus2;
CONST
    {chr = '0';}
    inputFile = ''{'virus'+chr+'.be'};
    outputFile = ''{'virus'+chr+'.ki2'};
    maxIdo = 7000;

VAR
    H: INTEGER;
    N: LONGINT;
    virusok : ARRAY [1..maxIdo] OF LONGINT;


PROCEDURE Init;
VAR
    i: INTEGER;
BEGIN
    FOR i:= 1 TO maxIdo DO
    BEGIN
        virusok [i] := 0;
    END;
END; {Init}

PROCEDURE Hozzaad(k, p: INTEGER); INLINE;
BEGIN
    k:= k-H+1;
    IF < 1 THEN k:= 1;
    INC(virusok[k]);
    DEC(virusok[p]);
END; {Hozzaad}

PROCEDURE Process;
VAR
    T: Text;
    i: LONGINT;
    k, p: INTEGER;
BEGIN
    Assign(T, inputFile);
    Reset(T);
    ReadLn(T, N, H);
    FOR i:= 1 TO N DO
    BEGIN
        ReadLn(T, k, p);
        Hozzaad(k, p);
    END;
    Close(T);
END; {Process}

PROCEDURE Kiir;
VAR
    maxV: LONGINT;
    curV: LONGINT;
    maxT: INTEGER;
    i: INTEGER;
    T: Text;
BEGIN
    curV := virusok[1]; maxV:= curV; maxT := 1;
    FOR i:= 2 TO maxIdo-DO
    BEGIN
        curV := curV + virusok[i];
        IF curV > maxV THEN
        BEGIN
            maxT := i; maxV := curV;
        END;
    END;
    Assign(T, outputFile);
    Rewrite(T);
    WriteLn(T, maxV, ' ', maxT);
    Close(T);
END; {Kiir}

BEGIN
    Init;
    Process;
    Kiir;
END.
(Vissza)