Cod sursa(job #127267)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 23 ianuarie 2008 18:13:56
Problema Restante Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.24 kb
Program restante;
Var f,ff:text;
    n,q,i,l:longint;
    a,aa:array[0..40000] of string[17];
procedure qsort(st,dr:longint);
var m,i,j,k,l:longint;
    aa,am:char;
begin
 m:=(st+dr) div 2;
 am:=a[q,m];
 i:=st;
 j:=dr;
 repeat
    while a[q,i]<am do inc(i);
    while a[q,j]>am do dec(j);
    if i<=j then
      begin
       aa:=a[q,i];
       a[q,i]:=a[q,j];
       a[q,j]:=aa;
       i:=i+1;j:=j-1;
      end;
 until(i>j);
 if i<dr then qsort(i,dr);
 if j>st then qsort(st,j);

end;
procedure qsor1(st,dr:longint);
var m,i,j,k,l:longint;
    aa,am:string;
begin
 m:=(st+dr) div 2;
 am:=a[m];
 i:=st;
 j:=dr;
 repeat
    while a[i]<am do inc(i);
    while a[j]>am do dec(j);
    if i<j then
      begin
       aa:=a[i];
       a[i]:=a[j];
       a[j]:=aa;
       i:=i+1;j:=j-1;
      end;
 until(i>j);
 if i<dr then qsort(i,dr);
 if j>st then qsort(st,j);

end;
Begin
  assign(f,'restante.in');
  reset(f);
  assign(ff,'restante.out');
  rewrite(ff);
  readln(f,n);
  for q:=1 to n do
     begin
      readln(f,a[q]);
      qsort(1,length(a[q]));
     end;
  qsor1(1,n);
  l:=n;
  for i:=1 to n do
     if (a[i]=a[i+1])or(a[i]=a[i-1]) then dec(l);
  Writeln(ff,l);
  close(f);
  close(ff);
End.