Informatika gyűjtemény

Egy szinttel feljebb kb_oszt.pas

2004050607080910

NézetNyomtat

kb_oszt.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
uses crt, strings;

CONST id = '8';

var db:longint;
    n:byte;
    darab:longint;

    szomszed: array[1..100] of array[1..100] of boolean;
    hivasok: array[1..100] of longint;
    jartunk: array[1..100] of boolean;

procedure beolvas;
var i,j:byte;
    s,q:string;
    be:text;
    idx:integer;
    code:integer;
begin
     assign(be, strcat(strcat('osztaly',id),'.be'));
     reset(be);
     readln(be, n);
     for i:=1 to n do begin
         readln(be, s);
         q:='';
         for j:= 1 to (length(s)) do begin
             if( s[j] <> ' ' ) then q:= q+s[j] else begin
                 val(q, idx, code);
                 q := '';
                 szomszed[i][idx] := true;
             end;
         end;
     end;
     close(be);
end;

procedure beallit;
var i,: byte;
begin
     for i:=1 to 100 do
         for j:=1 to 100 do
             szomszed[i][j] := false;
end;

procedure sehol_sem_jartunk;
var i:byte;
begin
     for i:=1 to 100 do jartunk[i] := false;
end;


procedure rek( i:byte );forward;

procedure szomszedok(i:byte);
var j:byte;
begin
     for j:=1 to n do begin
         if szomszed[i][j] then rek(j);
     end;
end;

procedure rek( i:byte );
begin
     if not jartunk[i] then begin
        inc(darab);
        jartunk[i] := true;
        szomszedok(i);
     end;
end;

function bejar( i:byte ):longint;
begin
     sehol_sem_jartunk;
     darab:=0;
     rek(i);
     bejar := darab;
end;

function legkisebb:longint;
var max:longint;
    i:byte;
begin
     max:=1;
     for i:=2 to n do
         if( hivasok[i] > hivasok[max] ) then max := i;
     legkisebb := max;

end;


procedure fajlba( legkisebb:longint );
var ki:text;
begin
     assign(ki, strcat(strcat('osztaly',id),'.ki'));
     rewrite(ki);
     writeln(ki, legkisebb);
     close(ki);
end;

procedure main;
var i:byte;
begin
     for i:=1 to n do hivasok[i] := bejar(i);

     fajlba( legkisebb );
end;

begin
     clrscr;
     beallit;

     beolvas;

     main;
end.
(Vissza)