Pagini recente » Cod sursa (job #2824617) | Cod sursa (job #685929) | Cod sursa (job #311038) | Cod sursa (job #2850820) | Cod sursa (job #127478)
Cod sursa(job #127478)
program alex;
type vector=array[1..36000]of string[16];
sirscurt=string[16];
var f:text;
s:vector;
j,i,n,m,nr,k:integer;
h:sirscurt;
z:char;
sir:sirscurt;
e:boolean;
procedure poz(li,ls:integer;var k:integer; var a:vector);
var i,j,i1,j1,c1:integer;
c:sirscurt;
begin
i1:=0;
j1:=-1;
i:=li;
j:=ls;
while i<j do
begin
if a[i]>a[j] then
begin
c:=a[j];
a[j]:=a[i];
a[i]:=c;
c1:=i1;
i1:=-j1;
j1:=-c1
end;
i:=i+i1;
j:=j+j1;
end;
k:=i;
end;
procedure quick(li,ls:integer);
begin
if li<ls then
begin
poz(li,ls,k,s);
quick(li,k-1);
quick(k+1,ls)
end;
end;
procedure poz1(li,ls:integer;var k:integer; var a:sirscurt);
var i2,j2,i1,j1,c1:integer;
c:char;
begin
i1:=0;
j1:=-1;
i2:=li;
j2:=ls;
while i2<j2 do
begin
if a[i2]>a[j2] then
begin
c:=a[j2];
a[j2]:=a[i2];
a[i2]:=c;
c1:=i1;
i1:=-j1;
j1:=-c1
end;
i2:=i2+i1;
j2:=j2+j1;
end;
k:=i2;
end;
procedure quick1(li,ls:integer);
begin
if li<ls then
begin
poz1(li,ls,k,sir);
quick1(li,k-1);
quick1(k+1,ls)
end;
end;
begin
assign(f,'restante.in');reset(f);
readln(f,n);
nr:=0;
for i:=1 to n do
begin
readln(f,s[i]);
m:=length(s[i]);
sir:=s[i];
quick1(1,m);
end;
quick(1,n);
i:=0;
repeat
i:=i+1;
if s[i]<>s[i+1] then nr:=nr+1
else
while s[i]=s[i+1] do
i:=i+1;
until i=n;
close(f);
assign(f,'restante.out');rewrite(f);
writeln(f,nr);
close(f);
end.