Cod sursa(job #903360)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 1 martie 2013 20:13:41
Problema Paduri de multimi disjuncte Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.19 kb
program info;
type multime=set of byte;
var f,g:text;
    v,u:array[1..1000] of multime;
    n,k,j,i,z:integer;
    x:integer;
begin
     assign(f,'flori.in');  reset(f);
     assign(g,'flori.out');  rewrite(g);
     readln(f,n,k);
     for i:=1 to n do
      begin
        v[i]:=[];
        for j:=1 to k do
         begin
           read(f,x);
           v[i]:=v[i]+[x];
         end;
         u[i]:=[i];
      end;
      for i:=1 to n-1 do
       for j:=i+1 to n do
        begin
          if v[i]*v[j]<>[] then
           begin
             v[i]:=v[i]+v[j];
             v[j]:=[];
             u[i]:=u[i]+[j];
             u[j]:=[];
             for z:=1 to  i-1 do
              begin
               if v[i]*v[z]<>[] then
           begin
             v[i]:=v[i]+v[z];
             v[z]:=[];
             u[i]:=u[i]+u[z];
             u[z]:=[];
             end;
           end;
           end;
        end;
      for i:=1 to n do
       begin
        if u[i]<>[] then
         begin
          for j:=1 to 1000 do
            if j in u[i] then
              write(g,j,' ');
          writeln(g);
         end;
       end;
      close(f);
      close(g);
end.