const n = 20; { размер массивов } p=0; { минимальное значение элемента } q=15; { максимальное значение элемента }type V=array[1..n] of integer;procedure VInit(var a:V; s:string);{ процедура заполняет элементы массива a случайными значениями из интервала [p;q]. Элементы сформированного массива выводятся с заголовком, в который добавляется значение s }var i,kol:integer;begin kol:=q-p+1; Writeln('Элементы массива ',s); for i:=1 to n do begin a[i]:=Random(kol)+p; Write(a[i],' ') end; Writelnend;procedure SortBubble(var a:V);{ сортировка методом пузырька }var i,j,t:integer;begin for i := 1 to n-1 do for j := 1 to n-i do if a[j] > a[j+1] then begin t := a[j]; a[j] := a[j+1]; a[j+1] := t endend;procedure VOut(var a:V;s:string);{ Элементы массива a выводятся с заголовком s }var i:integer;begin Writeln(s); for i:=1 to n do Write(a[i],' '); Writelnend;function BinSearch(var a:V;key:integer):boolean;{ двоичный поиск элемента со значением key в массиве a Возвращает true, если элемент найден и false, если нет }var li,ri,mi:integer;begin li:=1; ri:=n; while li<ri do begin mi:=(li+ri) div 2; if a[mi]<key then li:=mi+1 else ri:=mi; end; BinSearch:=(a[ri]=key)end;var a,b,c:V; i,ai1,s:integer; found:boolean;begin Randomize; VInit(a,'A'); SortBubble(a); VOut(a,'Отсортированный массив A'); VInit(b,'B'); SortBubble(b); VOut(b,'Отсортированный массив B'); VInit(c,'C'); SortBubble(c); VOut(c,'Отсортированный массив C'); s:=0; found:=false; for i:=1 to n do begin if found then if a[i]=ai1 then Inc(s,ai1) else found:=false; if not found then begin found:=BinSearch(b,a[i]); if found then found:=BinSearch(c,a[i]); if found then begin ai1:=a[i]; Inc(s,ai1) end end end; Writeln('Искомая сумма равна ',s);end.
Тестовое решение:Элементы массива A4 10 6 4 12 5 5 15 0 14 2 2 0 3 14 1 11 13 3 9 Отсортированный массив A0 0 1 2 2 3 3 4 4 5 5 6 9 10 11 12 13 14 14 15 Элементы массива B7 3 13 3 10 11 3 15 12 10 0 5 5 15 13 1 15 9 1 5 Отсортированный массив B0 1 1 3 3 3 5 5 5 7 9 10 10 11 12 13 13 15 15 15 Элементы массива C4 10 5 8 14 15 8 14 12 4 12 12 3 11 4 0 12 2 10 0 Отсортированный массив C0 0 2 3 4 4 4 5 8 8 10 10 11 12 12 12 12 14 14 15 Искомая сумма равна 64