program test; uses crt; type zv=^pointer; pointer=record elem:char; next:zv; end; var vlan1, vlan2, s1, s2:zv; sym:char; Lk,ls:boolean; procedure vstav(lanka:zv; buk:char); var q:zv; begin new(q); q^.elem:=buk; q^.next:=lanka^.next; lanka^.next:=q; end; begin clrscr; new(s1); s1^.next:=nil; vlan1:=s1; write('enter symbols= '); repeat read(sym); vstav(vlan1,sym); vlan1:=vlan1^.next until sym='.'; vlan1:=s1^.next; writeln; write('string S1= '); while vlan1<>nil do begin if vlan1^.elem='k' then lk:=true; if (vlan1^.elem='s') and (lk=true) then ls:=true; write(vlan1^.elem); vlan1:=vlan1^.next; end; writeln; if (lk=true) and (ls=true) then begin new(s2); s2^.next:=nil; vlan2:=s2; vlan1:=s1^.next; repeat if vlan1^.elem='k' then begin vlan1:=vlan1^.next; while vlan1^.elem<>'s' do begin vstav(vlan2,vlan1^.elem); vlan2:=vlan2^.next; vlan1:=vlan1^.next; end; end; vlan1:=vlan1^.next until vlan1=nil; write('string S2= '); vlan2:=s2; vlan2:=vlan2^.next; while vlan2<>nil do begin write(vlan2^.elem); vlan2:=vlan2^.next; end; end else writeln ('there are no k-s pairs in the S1 string'); end.