fork download
  1. program lista_wspolna_z_list_nieuporzadkowanych_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 nieuporządkowane! 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. r.ile := 0;
  20. i := 1;
  21. while i <= p.ile do
  22. begin
  23. j := 1;
  24. while 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. // usuń q.elementy[j], przesuwając pozostałe w lewo
  31. k := j;
  32. while k < q.ile do
  33. begin
  34. q.elementy[k] := q.elementy[k+1];
  35. k := k + 1;
  36. end;
  37. q.ile := q.ile - 1;
  38. // zakończ przeszukiwanie q dla tego p[i]
  39. j := q.ile + 1;
  40. end
  41. else
  42. j := j + 1;
  43. end;
  44. i := i + 1;
  45. end;
  46.  
  47. for i:= 1 to r.ile do write(r.elementy[i],' ');writeln;
  48. writeln('koniec');
  49. end.
Success #stdin #stdout 0s 5308KB
stdin
8 5
2 4 2 1 7 2 3 3
7 2 2 3 3
stdout
poczatek
8 5
2 4 2 1 7 2 3 3 
7 2 2 3 3 
2 2 7 3 3 
koniec