Informatika gyűjtemény

Egy szinttel feljebb fg_elfogo.pas

2004050607080910

NézetNyomtat

fg_elfogo.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 elfogo2;
CONST
    ch = '0';
    inputFile = 'elfogo.be'+ch;
    outputFile = 'elfogo.k_'+ch;

VAR
    map: ARRAY [1..200, 1..200] OF BOOLEAN;
    N, M: INTEGER;

    utvonal: ARRAY [1..200] OF BOOLEAN;

    oT: Text;

PROCEDURE Load;
VAR
    T: Text;
    i, a, b: INTEGER;
BEGIN
    FOR a:= 1 TO 200 DO
    BEGIN
        FOR b:= 1 TO 200 DO
        BEGIN
            map[a, b]:= FALSE;
        END;
    END;
    Assign(T, inputFile);
    Reset(T);
    ReadLn(T, N);
    ReadLn(T, M);
    FOR i:= 1 TO M DO
    BEGIN
        ReadLn(T, a, b);
        map[a, b]:= TRUE; map[b, a]:= TRUE;
    END;
    Close(T);
END; {Load}

PROCEDURE Rekurziv(node: BYTE); {Bevezet}
VAR
    i: BYTE;
BEGIN
    utvonal[node]:= TRUE;

    Write(oT, node, ' ');

    FOR i:= 1 TO N DO
    BEGIN
        IF (map[node, i]) AND (map[i, node]) AND (utvonal[i] = FALSE) THEN
        BEGIN
            map[node, i]:= FALSE;
            Rekurziv(i);
            Write(oT, node, ' ');
        END;
    END;

    utvonal[node]:= FALSE;
END; {Rekurziv}

PROCEDURE Process;
VAR
    i: INTEGER;
BEGIN
    FOR i:= 1 TO 200 DO utvonal[i]:= FALSE;

    Assign(oT, outputFile);
    Rewrite(oT);
    WriteLn(oT, M*2+1);
    Rekurziv(1);
    Close(oT);
END; {Process}

BEGIN
    Load;
    Process;
END.
(Vissza)