uses CRT;
Var st:string;
procedure dplle(var a:string); {delete previous last letter's entries}
var i,lnth:integer;ll:string[1];
begin
lnth:=length(a);
ll:=a[lnth]; {last letter}
i:=1;
while i<lnth do
begin
if a[i]=ll then
begin
{writeln('LL=',ll,' | a[',i,']=',a[i],' | lnth=',lnth);}
delete(a,i,1);
lnth:=length(a);
end;
i:=i+1;
end;
end;
procedure kos(var a:string); {kill odd spaces}
begin
while a[1]=' ' do delete(st,1,1);
while pos(' ',a)<>0 do delete(st,pos(' ',a),1);
end;
function get_last_word(var a:string):string;
var i:integer;word:string;
begin
i:=length(a);
while a[i]<>' ' do i:=i-1;
get_last_word:=copy(a,i+1,length(a)-i+1);
end;
procedure main(a:string);
var i,npos:integer;word,last_word:string;
begin
npos:=1;
last_word:=get_last_word(a);
for i:=2 to length(a) do
if a[i]=' ' then
begin
word:=copy(a,npos,i-npos);
if word<>last_word then
begin
dplle(word);
writeln(word);
end;
npos:=i+1;
end;
end;
Begin
ClrScr;
writeln('Please, enter a string:');
readln(st);
kos(st);
writeln;
writeln('After deleting odd spaces:');
writeln(st);
writeln;
writeln('Main:');
main(st);
readkey;
End.