Cod sursa(job #127780)

Utilizator TudorutzuMusoiu Tudor Tudorutzu Data 24 ianuarie 2008 23:39:49
Problema Restante Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
type sir=array[1..36001] of string[18];
var a:sir;
    n,i,nr:longint;
    f,g:text;
procedure quick1(s,d:integer; var a:string);
var i,j:integer;
    w1,w2,x:char;
begin
     i:=s; j:=d; x:=a[(s+d)div 2];
     repeat
          while a[i]<x do inc(i);
          while a[j]>x do dec(j);
          if i<=j then
          begin
               w1:=a[i]; w2:=a[j];
               delete(a,i,1); insert(w2,a,i);
               delete(a,j,1); insert(w1,a,j);
               inc(i); dec(j);
          end
     until i>j;
     if s<j then quick1(s,j,a);
     if d>i then quick1(i,d,a);
end;
procedure quick2(s,d:longint; var a:sir);
var i,j:longint;
    w,x:string;
begin
     i:=s; j:=d; x:=a[(s+d)div 2];
     repeat
          while a[i]<x do inc(i);
          while a[j]>x do dec(j);
          if i<=j then
          begin
               w:=a[i]; a[i]:=a[j]; a[j]:=w;
               inc(i); dec(j);
          end
     until i>j;
     if s<j then quick2(s,j,a);
     if i<d then quick2(i,d,a);
end;
begin
     assign(f,'restante.in'); reset(f);
     assign(g,'restante.out'); rewrite(g);
     readln(f,n);
     for i:=1 to n do
     begin
          readln(f,a[i]);
          quick1(1,length(a[i]),a[i]);
     end;
     nr:=0;
     quick2(1,n,a);
     for i:=1 to n do
          if (a[i]<>a[i-1])and(a[i]<>a[i+1]) then nr:=nr+1;
     writeln(g,nr);
     close(g);
end.