Cod sursa(job #137069)

Utilizator nod_softwareBudisteanu Ionut Alexandru nod_software Data 16 februarie 2008 20:51:28
Problema Restante Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.77 kb
program NOD_SOFTWARE;   
type vector = array [1..36000] of string[17];
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.