Pagini recente » Cod sursa (job #56453) | Cod sursa (job #579124) | Cod sursa (job #2630681) | Cod sursa (job #444522) | Cod sursa (job #406393)
Cod sursa(job #406393)
var x:array[0..30000] of string;
aux:array[0..16] of char;
t:text;
i,j,n:longint;
s,sg:string;
function tos(x:array of char; l:longint):string;
var i:longint;
begin
tos:=sg;
for i:=1 to l do tos:=tos+x[i];
end;
var loc,lss,ldd,p:longint;
procedure qsorta(var x:array of string; ls,ld:longint);
var pi:longint;
p:string;
begin
lss:=ls; ldd:=ld; loc:=ls;
pi:=(ls+ld) shr 1;
p:=x[pi]; x[pi]:=x[ls];
//lss:=lss+1;
while lss<ldd do
begin
while ((x[ldd]>=p)and(lss<ldd)) do ldd:=ldd-1;
x[loc]:=x[ldd]; loc:=ldd;
while ((x[lss]<p)and(lss<ldd)) do lss:=lss+1;
x[loc]:=x[lss]; loc:=lss;
end;
x[loc]:=p;
pi:=loc;
if (ls<pi-1) then
qsorta(x,ls,pi-1);
if (pi+1<ld) then
qsorta(x,pi+1,ld);
end;
procedure quicksorta(var x:array of string; l:longint);
begin
qsorta(x,1,l);
end;
procedure qsorts(var x:array of char; ls,ld:longint);
var pi:longint;
p:char;
begin
lss:=ls; ldd:=ld; loc:=ls;
pi:=(ls+ld) shr 1;
p:=x[pi]; x[pi]:=x[ls];
//lss:=lss+1;
while lss<ldd do
begin
while ((ord(x[ldd])>=ord(p))and(lss<ldd)) do ldd:=ldd-1;
x[loc]:=x[ldd]; loc:=ldd;
while ((ord(x[lss])<ord(p))and(lss<ldd)) do lss:=lss+1;
x[loc]:=x[lss]; loc:=lss;
end;
x[loc]:=p;
pi:=loc;
if (ls<pi-1) then
qsorts(x,ls,pi-1);
if (pi+1<ld) then
qsorts(x,pi+1,ld);
end;
procedure quicksorts(var x:array of char; l:longint);
begin
qsorts(x,1,l);
end;
begin
assign(t,'restante.in'); reset(t);
readln(t,n);
for i:=1 to n do
begin
j:=0;
while(not(eoln(t))) do
begin
j:=j+1;
read(t,aux[j]);
end;
readln(t);
quicksorts(aux,j);
x[i]:=tos(aux,j);
end;
quicksorta(x,n);
//for i:=1 to n do writeln(x[i]); readln;
for i:=1 to n do
if ((x[i]<>x[i-1])and(x[i]<>x[i+1])) then j:=j+1;
close(t);
assign(t,'restante.out'); rewrite(t);
writeln(t,j);
close(t);
end.