fork download
  1. program lista_wspolna_z_p_i_q;
  2. type tab=array[1..10] of integer;
  3. lst = record
  4. elementy: tab;
  5. ile: integer
  6. end;
  7. var
  8. i, j, k, l: integer;
  9. p, q, r: lst; (* p i q listy niepuste i niemalejące! r - lista wynikowa *)
  10.  
  11. begin
  12. writeln('poczatek');
  13. read(p.ile, q.ile); readln; writeln(p.ile,' ',q.ile);
  14. for i:= 1 to p.ile do read(p.elementy[i]);readln;
  15. for i:= 1 to q.ile do read(q.elementy[i]);readln;
  16. for i:= 1 to p.ile do write(p.elementy[i],' ');writeln;
  17. for i:= 1 to q.ile do write(q.elementy[i],' ');writeln;
  18.  
  19. (*tu wpisz kod tworzenia listy r elementów wspólnych*)
  20. r.ile := 0;
  21. i := 1;
  22. j := 1;
  23.  
  24. while (i <= p.ile) and (j <= q.ile) do
  25. begin
  26. if p.elementy[i] = q.elementy[j] then
  27. begin
  28. r.ile := r.ile + 1;
  29. r.elementy[r.ile] := p.elementy[i];
  30. i := i + 1;
  31. j := j + 1;
  32. end
  33. else if p.elementy[i] < q.elementy[j] then
  34. i := i + 1
  35. else
  36. j := j + 1;
  37. end;
  38.  
  39. for i:= 1 to r.ile do write(r.elementy[i],' ');writeln;
  40. writeln('koniec');
  41. end.
Success #stdin #stdout 0.01s 5284KB
stdin
8 6
2 2 2 3 3 5 5 11
2 2 5 7 7 11
stdout
poczatek
8 6
2 2 2 3 3 5 5 11 
2 2 5 7 7 11 
2 2 5 11 
koniec