program lista_wspolna_z_p_i_q;
type tab=array[1..10] of integer;
lst = record
elementy: tab;
ile: integer
end;
var
i, j, k, l: integer;
p, q, r: lst; (* p i q listy niepuste i niemalejące! r - lista wynikowa *)
begin
writeln('poczatek');
read(p.ile, q.ile); readln; writeln(p.ile,' ',q.ile);
for i:= 1 to p.ile do read(p.elementy[i]);readln;
for i:= 1 to q.ile do read(q.elementy[i]);readln;
for i:= 1 to p.ile do write(p.elementy[i],' ');writeln;
for i:= 1 to q.ile do write(q.elementy[i],' ');writeln;
i := 1; j := 1; k := 1;
// indeks do bierzących elementów listy p i q
while (i <= p.ile) and (j <= q.ile) do
begin
// Jesli liczba w "p" jest mniejsza to przesuwam indeks i
if p.elementy[i] < q.elementy[j] then
i := i + 1
// Jesli liczba w "q" jets mniejsza to przesuwam indeks j
else if p.elementy[i] > q.elementy[j] then
j := j + 1
else
// A jesli p i q są rowne, dodajemy liczbe do r
begin
// k - biezaca pozycja na liscie r
r.elementy[k] := p.elementy[i]; // dowolną p lub q
// zwiekszamy indeksy
k := k + 1;
i := i + 1;
j := j + 1;
end;
end;
// Po petli, k wyszedł poza zakres
r.ile := k - 1;
for i:= 1 to r.ile do write(r.elementy[i],' ');writeln;
writeln('koniec');
end.
cHJvZ3JhbSBsaXN0YV93c3BvbG5hX3pfcF9pX3E7CnR5cGUgdGFiPWFycmF5WzEuLjEwXSBvZiBpbnRlZ2VyOwogICAgIGxzdCA9IHJlY29yZAogICAgICAgICAgICAgICAgZWxlbWVudHk6IHRhYjsKICAgICAgICAgICAgICAgIGlsZTogaW50ZWdlcgogICAgICAgICAgICAgZW5kOwp2YXIKICAgIGksIGosIGssIGw6IGludGVnZXI7CiAgICBwLCBxLCByOiBsc3Q7ICAoKiAgcCBpIHEgbGlzdHkgbmllcHVzdGUgaSBuaWVtYWxlasSFY2UhIHIgLSBsaXN0YSB3eW5pa293YSAqKQogCmJlZ2luCiAgICB3cml0ZWxuKCdwb2N6YXRlaycpOwogICAgcmVhZChwLmlsZSwgcS5pbGUpOyByZWFkbG47IHdyaXRlbG4ocC5pbGUsJyAnLHEuaWxlKTsKICAgIGZvciBpOj0gMSB0byBwLmlsZSBkbyByZWFkKHAuZWxlbWVudHlbaV0pO3JlYWRsbjsKICAgIGZvciBpOj0gMSB0byBxLmlsZSBkbyByZWFkKHEuZWxlbWVudHlbaV0pO3JlYWRsbjsKICAgIGZvciBpOj0gMSB0byBwLmlsZSBkbyB3cml0ZShwLmVsZW1lbnR5W2ldLCcgJyk7d3JpdGVsbjsKICAgIGZvciBpOj0gMSB0byBxLmlsZSBkbyB3cml0ZShxLmVsZW1lbnR5W2ldLCcgJyk7d3JpdGVsbjsKIAogICAgaSA6PSAxOyBqIDo9IDE7IGsgOj0gMTsKIAoJLy8gaW5kZWtzIGRvIGJpZXJ6xIVjeWNoIGVsZW1lbnTDs3cgbGlzdHkgcCBpIHEKICAgIHdoaWxlIChpIDw9IHAuaWxlKSBhbmQgKGogPD0gcS5pbGUpIGRvCiAgICBiZWdpbgoJCS8vIEplc2xpIGxpY3piYSB3ICJwIiBqZXN0IG1uaWVqc3phIHRvIHByemVzdXdhbSBpbmRla3MgaQogICAgICAgIGlmIHAuZWxlbWVudHlbaV0gPCBxLmVsZW1lbnR5W2pdIHRoZW4KICAgICAgICAgICAgaSA6PSBpICsgMQogICAgICAgIC8vIEplc2xpIGxpY3piYSB3ICJxIiBqZXRzIG1uaWVqc3phIHRvIHByemVzdXdhbSBpbmRla3MgagogICAgICAgIGVsc2UgaWYgcC5lbGVtZW50eVtpXSA+IHEuZWxlbWVudHlbal0gdGhlbgogICAgICAgICAgICBqIDo9IGogKyAxCiAgICAgICAgZWxzZQogICAgICAgIC8vIEEgamVzbGkgcCBpIHEgc8SFIHJvd25lLCBkb2RhamVteSBsaWN6YmUgZG8gcgogICAgICAgIGJlZ2luCgkJCS8vIGsgLSBiaWV6YWNhIHBvenljamEgbmEgbGlzY2llIHIKICAgICAgICAgICAgci5lbGVtZW50eVtrXSA6PSBwLmVsZW1lbnR5W2ldOyAvLyBkb3dvbG7EhSBwIGx1YiBxCiAgICAgICAgICAgIC8vIHp3aWVrc3phbXkgaW5kZWtzeQogICAgICAgICAgICBrIDo9IGsgKyAxOwogICAgICAgICAgICBpIDo9IGkgKyAxOwogICAgICAgICAgICBqIDo9IGogKyAxOwogICAgICAgIGVuZDsKIAogICAgZW5kOwogICAgLy8gUG8gcGV0bGksIGsgd3lzemVkxYIgcG96YSB6YWtyZXMKICAgIHIuaWxlIDo9IGsgLSAxOwogCiAgICBmb3IgaTo9IDEgdG8gci5pbGUgZG8gd3JpdGUoci5lbGVtZW50eVtpXSwnICcpO3dyaXRlbG47ICAgICAKICAgIHdyaXRlbG4oJ2tvbmllYycpOwplbmQu