Pagini recente » Cod sursa (job #2532768) | Cod sursa (job #837831) | Cod sursa (job #530525) | Cod sursa (job #493448) | Cod sursa (job #125560)
Cod sursa(job #125560)
var a,b:array[0..36001] of string[16];
nr:array['a'..'z'] of longint;
f,g:text;
i,j,t,k,n,numar:longint;
procedure ordon(var x:string[16]);
var i:longint;
c:char;
begin
for i:=1 to length(x) do
inc(nr[x[i]]);
x:='';
for c:='a' to 'z' do
for i:=1 to nr[c] do
x:=x+c;
for i:=1 to length(x) do
dec(nr[x[i]]);
end;
procedure interclasez(st,mij,dr:longint);
begin
for i:=st to dr do
b[i]:=a[i];
i:=st;
j:=mij+1;
k:=st;
while (i<=mij) and (j<=dr) do
if b[i]<b[j] then begin
a[k]:=b[i];
inc(i);
inc(k);
end
else begin
a[k]:=b[j];
inc(j);
inc(k);
end;
for t:=i to mij do begin
a[k]:=b[t];
inc(k);
end;
for t:=j to dr do begin
a[k]:=b[t];
inc(k);
end;
end;
procedure mergesort(st,dr:longint);
var mij:longint;
begin
if st<dr then begin
mij:=(st+dr) shr 1;
mergesort(st,mij);
mergesort(mij+1,dr);
interclasez(st,mij,dr);
end;
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]);
ordon(a[i]);
end;
mergesort(1,n);
for i:=1 to n do
if (a[i]<>a[i+1]) and (a[i]<>a[i-1]) then
inc(numar);
writeln(g,numar);
close(f); close(g);
end.