Pagini recente » Cod sursa (job #1752694) | Cod sursa (job #207425) | Cod sursa (job #310864) | Cod sursa (job #2796087) | Cod sursa (job #763732)
Cod sursa(job #763732)
program restante;
var f,g:text;
v:array of string[16];
n,i:longint;
bufin:array[1..65000] of byte;
nr:longint;
procedure sort1 (st,dr:byte);
var ma:integer;
aux:char;
a,b:byte;
begin
a:=st; b:=dr;
repeat
while v[i][a]<v[i][b] do
dec(b);
aux:=v[i][a]; v[i][a]:=v[i][b]; v[i][b]:=aux; inc(a);
ma:=1;
if a<b then
begin
while v[i][a]<v[i][b] do
inc(a);
aux:=v[i][a]; v[i][a]:=v[i][b]; v[i][b]:=aux; ma:=0; dec(b);
end;
until b<=a;
if st<a-ma then sort1 (st,a-ma);
if dr>a-ma+1 then
sort1 (a-ma+1,dr);
end;
procedure sort2 (st,dr:longint);
var ma:integer;
aux:string[16];
a,b:longint;
begin
a:=st; b:=dr;
repeat
while v[a]<v[b] do
dec (b);
aux:=v[a]; v[a]:=v[b]; v[b]:=aux; inc(a); ma:=1;
if a<b then
begin
while v[a]<v[b] do
inc(a);
aux:=v[a]; v[a]:=v[b]; v[b]:=aux; ma:=0; dec(b);
end;
until b<=a;
if st<a-ma then
sort2 (st,a-ma);
if dr>a-ma+1 then
sort2 (a-ma+1,dr);
end;
begin
assign (f,'restante.in'); reset (f);
assign (g,'restante.out'); rewrite (g);
settextbuf (f,bufin);
readln (f,n);
setlength (v,n+1);
for i:=1 to n do
readln (f,v[i]);
for i:=1 to n do
sort1 (1,length (v[i]));
sort2 (1,n);
for i:=2 to n-1 do
if (v[i]<>v[i-1]) and (v[i]<>v[i+1]) then
inc(nr);
if v[n]<>v[n-1] then
inc(nr);
if v[1]<>v[2] then
inc(nr);
write (g,nr);
close (F); close (g);
end.