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.
cHJvZ3JhbSBsaXN0YV93c3BvbG5hX3pfcF9pX3E7Cgp0eXBlIHRhYj1hcnJheVsxLi4xMF0gb2YgaW50ZWdlcjsKCiAgICAgbHN0ID0gcmVjb3JkCgogICAgICAgICAgICAgICAgZWxlbWVudHk6IHRhYjsKCiAgICAgICAgICAgICAgICBpbGU6IGludGVnZXIKCiAgICAgICAgICAgICBlbmQ7Cgp2YXIKCiAgICBpLCBqLCBrLCBsOiBpbnRlZ2VyOwoKICAgIHAsIHEsIHI6IGxzdDsgICgqICBwIGkgcSBsaXN0eSBuaWVwdXN0ZSBpIG5pZW1hbGVqxIVjZSEgciAtIGxpc3RhIHd5bmlrb3dhICopCgogICAgCgpiZWdpbgoKICAgIHdyaXRlbG4oJ3BvY3phdGVrJyk7CgogICAgcmVhZChwLmlsZSwgcS5pbGUpOyByZWFkbG47IHdyaXRlbG4ocC5pbGUsJyAnLHEuaWxlKTsKCiAgICBmb3IgaTo9IDEgdG8gcC5pbGUgZG8gcmVhZChwLmVsZW1lbnR5W2ldKTtyZWFkbG47CgogICAgZm9yIGk6PSAxIHRvIHEuaWxlIGRvIHJlYWQocS5lbGVtZW50eVtpXSk7cmVhZGxuOwoKICAgIGZvciBpOj0gMSB0byBwLmlsZSBkbyB3cml0ZShwLmVsZW1lbnR5W2ldLCcgJyk7d3JpdGVsbjsKCiAgICBmb3IgaTo9IDEgdG8gcS5pbGUgZG8gd3JpdGUocS5lbGVtZW50eVtpXSwnICcpO3dyaXRlbG47CgoKCiAgICBpIDo9IDE7IGogOj0gMTsgayA6PSAxOwoKICAgIAoKICAgIC8vIGluZGVrcyBkbyBiaWVyesSFY3ljaCBlbGVtZW50w7N3IGxpc3R5IHAgaSBxCgogICAgd2hpbGUgKGkgPD0gcC5pbGUpIGFuZCAoaiA8PSBxLmlsZSkgZG8KCiAgICBiZWdpbgoKCS8vIEplc2xpIGxpY3piYSB3ICJwIiBqZXN0IG1uaWVqc3phIHRvIHByemVzdXdhbSBpbmRla3MgaQoKICAgICAgICBpZiBwLmVsZW1lbnR5W2ldIDwgcS5lbGVtZW50eVtqXSB0aGVuCgppIDo9IGkgKyAxCgogICAgICAgIC8vIEplc2xpIGxpY3piYSB3ICJxIiBqZXRzIG1uaWVqc3phIHRvIHByemVzdXdhbSBpbmRla3MgagoKICAgICAgICBlbHNlCgppZiBwLmVsZW1lbnR5W2ldID4gcS5lbGVtZW50eVtqXSB0aGVuCgpqIDo9IGogKyAxCgogICAgICAgIGVsc2UKCiAgICAgICAgLy8gQSBqZXNsaSBwIGkgcSBzxIUgcm93bmUsIGRvZGFqZW15IGxpY3piZSBkbyByCgogICAgICAgIGJlZ2luCgoJLy8gayAtIGJpZXphY2EgcG96eWNqYSBuYSBsaXNjaWUgcgoKci5lbGVtZW50eVtrXSA6PSBwLmVsZW1lbnR5W2ldOyAvLyBkb3dvbG7EhSBwIGx1YiBxCgovLyB6d2lla3N6YW15IGluZGVrc3kKCmsgOj0gayArIDE7CgogICAgICAgIGkgOj0gaSArIDE7CgogICAgICAgIGogOj0gaiArIDE7CgogICAgICAgIGVuZDsKCiAgICBlbmQ7CgoKCiAgICAvLyBQbyBwZXRsaSwgayB3eXN6ZWTFgiBwb3phIHpha3JlcwoKICAgIHIuaWxlIDo9IGsgLSAxOwoKICAgIGZvciBpOj0gMSB0byByLmlsZSBkbyB3cml0ZShyLmVsZW1lbnR5W2ldLCcgJyk7IHdyaXRlbG47ICAgICAKCiAgICB3cml0ZWxuKCdrb25pZWMnKTsKCmVuZC4=