Pagini recente » Cod sursa (job #1281730) | Cod sursa (job #27516) | Cod sursa (job #1593352) | Cod sursa (job #2904900) | Cod sursa (job #124868)
Cod sursa(job #124868)
program restante;
var f,g:text;
v:array[0..36001] of string;
n,dim:longint;
procedure prel(var s:string);
var i,j:longint;
aux:char;
begin
for i:=1 to length(s)-1 do
for j:=i+1 to length(s) do
if s[i]>s[j] then
begin
aux:=s[i];
s[i]:=s[j];
s[j]:=aux;
end;
end;
procedure iofile;
var i:longint;
begin
assign(f,'restante.in');reset(f);
assign(g,'restante.out');rewrite(g);
readln(f,n);dim:=n;
for i:=1 to n do
begin
readln(f,v[i]);
prel(v[i]);
end;
v[0]:='';
v[n+1]:='';
end;
procedure repair(i:longint);
var l,r,max:longint;
aux:longint;
aux1:string;
begin
l:=i*2;
r:=l+1;
max:=i;
if (l<=dim)and(v[l]>v[max]) then max:=l;
if (r<=dim)and(v[r]>v[max]) then max:=r;
if max<>i then
begin
aux1:=v[i];
v[i]:=v[max];
v[max]:=aux1;
repair(max);
end;
end;
procedure build_heap;
var i:longint;
begin
for i:= n div 2 downto 1 do
repair(i);
end;
procedure heapsort;
var i:longint;
aux:string;
begin
build_heap;
for i:=n downto 2 do
begin
aux:=v[1];
v[1]:=v[i];
v[i]:=aux;
dec(dim);
repair(1);
end;
end;
procedure count;
var i:longint;
nrf,nrog:longint;
begin
nrf:=0;
nrog:=0;
for i:=1 to n do
if (v[i]=v[i-1])or(v[i]=v[i+1]) then
inc(nrf) else inc(nrog);
writeln(g,nrog);
close(g);
end;
begin
iofile;
heapsort;
count;
end.