Cod sursa(job #406393)

Utilizator andrey932Andrei andrey932 Data 1 martie 2010 14:58:42
Problema Restante Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.91 kb
var x:array[0..30000] of string;
    aux:array[0..16] of char;
    t:text;
    i,j,n:longint;
    s,sg:string;

function tos(x:array of char; l:longint):string;
var i:longint;
begin
  tos:=sg;
  for i:=1 to l do tos:=tos+x[i];
end;



var loc,lss,ldd,p:longint;
procedure qsorta(var x:array of string; ls,ld:longint);
var pi:longint;
    p:string;
begin
lss:=ls; ldd:=ld; loc:=ls;
pi:=(ls+ld) shr 1;
p:=x[pi]; x[pi]:=x[ls];
//lss:=lss+1;
while lss<ldd do
  begin
    while ((x[ldd]>=p)and(lss<ldd)) do ldd:=ldd-1;
    x[loc]:=x[ldd]; loc:=ldd;
    while ((x[lss]<p)and(lss<ldd)) do lss:=lss+1;
    x[loc]:=x[lss]; loc:=lss;
  end;
x[loc]:=p;
pi:=loc;
if (ls<pi-1) then
  qsorta(x,ls,pi-1);
if (pi+1<ld) then
  qsorta(x,pi+1,ld);
end;
procedure quicksorta(var x:array of string; l:longint);
begin
qsorta(x,1,l);
end;



procedure qsorts(var x:array of char; ls,ld:longint);
var pi:longint;
    p:char;
begin
lss:=ls; ldd:=ld; loc:=ls;
pi:=(ls+ld) shr 1;
p:=x[pi]; x[pi]:=x[ls];
//lss:=lss+1;
while lss<ldd do
  begin
    while ((ord(x[ldd])>=ord(p))and(lss<ldd)) do ldd:=ldd-1;
    x[loc]:=x[ldd]; loc:=ldd;
    while ((ord(x[lss])<ord(p))and(lss<ldd)) do lss:=lss+1;
    x[loc]:=x[lss]; loc:=lss;
  end;
x[loc]:=p;
pi:=loc;
if (ls<pi-1) then
  qsorts(x,ls,pi-1);
if (pi+1<ld) then
  qsorts(x,pi+1,ld);
end;
procedure quicksorts(var x:array of char; l:longint);
begin
qsorts(x,1,l);
end;




begin
assign(t,'restante.in'); reset(t);
readln(t,n);
for i:=1 to n do
  begin
    j:=0;
    while(not(eoln(t))) do
      begin
        j:=j+1;
        read(t,aux[j]);
      end;
    readln(t);
    quicksorts(aux,j);
    x[i]:=tos(aux,j);
  end;
quicksorta(x,n);
//for i:=1 to n do writeln(x[i]); readln;
for i:=1 to n do
  if ((x[i]<>x[i-1])and(x[i]<>x[i+1])) then j:=j+1;
close(t);
assign(t,'restante.out'); rewrite(t);
writeln(t,j);
close(t);





end.