Cod sursa(job #136855)

Utilizator nod_softwareBudisteanu Ionut Alexandru nod_software Data 16 februarie 2008 10:49:35
Problema Restante Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.62 kb
program NOD_SOFTWARE;
type vector = array [1..36000] of string[16];
var v:vector;
    rezultat,q,i,j,n,m:integer;
    x,z:array ['a'..'z'] of byte;
    fin,fout:text;
    ok:boolean;
    c:char;
{*--------------------------*}
procedure initializare;
begin
     for c:='a' to 'z' do x[c]:=0;
     for c:='a' to 'z' do z[c]:=0;
end;
{*--------------------------*}
function egal:boolean;
begin
     egal:=true;
     for c:='a' to 'z'do if x[c]<>z[c] then egal:=false;
end;
{*--------------------------*}
procedure citire;
begin
     assign(fin,'restante.in'); reset(fin);
     assign(fout,'restante.out'); rewrite(fout);
     readln(fin,n);
     for i:=1 to n do readln(fin,v[i]);
     close(fin);
end;
{*-----------MAIN-----------*}
begin
     citire;
     for i:=1 to n do
     begin
          if v[i] <> '$' then
          begin
               initializare;
               ok:=false;
               for j:=1 to length(v[i]) do inc(x[v[i][j]]);
               for q:=1 to n do
               begin
                    if i <> q then
                    begin
                         for j:=1 to length(v[q]) do inc(z[v[q][j]]);
                         if egal then
                         begin
                              ok:=true;
                              v[q]:='$';
                         end;
                         for c:='a' to 'z' do z[c]:=0;
                    end;
               end;
               if ok then v[i]:='$';
          end;
     end;

     rezultat:=0;
     for i:=1 to n do if v[i]<>'$' then inc(rezultat);
     writeln(fout,rezultat);

     close(fout);
end.