Pagini recente » Cod sursa (job #2920011) | Cod sursa (job #3217929) | Cod sursa (job #2635807) | Cod sursa (job #1586811) | Cod sursa (job #126227)
Cod sursa(job #126227)
Program restante;
Var f,ff:text;
n,q,i,l:longint;
a,aa:array[0..40000] of string[17];
procedure merge(st,dr:longint);
var m,i,j,k,l:longint;
aa:string;
begin
if st<dr then
begin
m:=(st+dr) div 2;
merge(st,m);
merge(m+1,dr);
i:=st;
j:=m+1;
l:=0;
aa:='';
while(i<=m)and(j<=dr) do
if a[q,i]>a[q,j] then begin aa:=aa+a[q,j]; inc(j); end
else begin aa:=aa+a[q,i]; inc(i); end;
for k:=i to m do aa:=aa+a[q,k];
for k:=j to dr do aa:=aa+a[q,k];
for k:=st to dr do a[q,k]:=aa[k-st+1];
end;
end;
procedure merge1(st,dr:longint);
var m,i,j,k,l:longint;
begin
if st<dr then
begin
m:=(st+dr) div 2;
merge1(st,m);
merge1(m+1,dr);
i:=st;
j:=m+1;
l:=0;
while(i<=m)and(j<=dr) do
if a[i]>a[j] then begin inc(l); aa[l]:=a[j]; inc(j); end
else begin inc(l); aa[l]:=a[i]; inc(i); end;
for k:=i to m do begin inc(l); aa[l]:=a[k]; end;
for k:=j to dr do begin inc(l); aa[l]:=a[k]; end;
for k:=st to dr do a[k]:=aa[k-st+1];
end;
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]);
merge(1,length(a[q]));
end;
merge1(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.