Informatika gyűjtemény

Egy szinttel feljebb fg_dom.pas

2004050607080910

NézetNyomtat

fg_dom.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
{
Feher Gabor - 2005/08/26
}
{$R+} {$Q+}
PROGRAM fg_dom;
VAR
    inputFile, outputFile: STRING;

TYPE
    tomb = ARRAY [0..9, 0..9] OF LONGINT;

VAR
    hossz, ujhossz: tomb;

PROCEDURE Alap;
VAR
    i, j: BYTE;
BEGIN
    FOR i:= 0 TO 9 DO
    BEGIN
        FOR j:= 0 TO 9 DO
        BEGIN
            hossz[i, j]:= 0;
        END;
    END;
END; {Alap}

PROCEDURE Betesz(a, b: BYTE);
VAR
    i: BYTE;
BEGIN
    ujhossz:= hossz;
    FOR i:= 0 TO 9 DO
    BEGIN
        IF (hossz[a, i] > 0) AND (hossz[a, i] + 1 > ujhossz[b, i]) THEN
        BEGIN
            ujhossz[b, i]:= hossz[a, i] + 1;
            ujhossz[i, b]:= ujhossz[b, i];
        END;
        IF (hossz[b, i] > 0) AND (hossz[b, i] + 1 > ujhossz[a, i]) THEN
        BEGIN
            ujhossz[a, i]:= hossz[b, i] + 1;
            ujhossz[i, a]:= ujhossz[a, i];
        END;
    END;
    hossz:= ujhossz;
END; {Betesz}

PROCEDURE Megold;
VAR
    T: Text;
    i, N: LONGINT;
    a, b: BYTE;
BEGIN
    Alap;
    Assign(T, inputFile);
    Reset(T);
    ReadLn(T, N);
    ReadLn(T, a, b);
    hossz[a, b]:= 1; hossz[b, a]:= 1;
    FOR i := 2 TO N DO
    BEGIN
        ReadLn(T, a, b);
        Betesz(a, b);
    END;
    Close(T);

    i := 0;
    FOR a := 0 TO 9 DO
    BEGIN
        FOR b := 0 TO 9 DO
        BEGIN
            IF hossz[a, b] > i THEN i:= hossz[a, b];
        END;
    END;

    Assign(T, outputFile);
    Rewrite(T);
    WriteLn(T, i);
    Close(T);
END; {Megold}

PROCEDURE FoProg;
VAR
    ch: CHAR;
BEGIN
    {FOR id:= 0 TO 9 DO}
    BEGIN
        Write('sorszam: '); ReadLn(ch);
        inputFile := 'domino.be'+ch;
        outputFile := 'domino.k'+ch;
        Megold;
    END;
END; {FoProg}

BEGIN
    FoProg;
END.
(Vissza)