Заданы две последовательности A1,A2, :, An и B1,B2,:,Bm. Рассмотрим таблицу Cij=Ai+Bj. Необходимо найти какие числа И сколько раз встречаются в этой таблице — Pascal(Паскаль)

Формат ввода:
Первая строка входного файла содержит целое число n (1<=n<=10^5). Вторая строка входного файла содержит n целых чисел A1,A2, :, An. Все Ai удовлетворяют условию 0<=Ai<2^15. Третья строка входного файла содержит целое число m (1<=m<=10^5). Четвертая строка входного файла содержит m целых чисел B1,B2, :, Bm. Все Bi удовлетворяют условию 0<=Bi<2^15.

Формат вывода:
В выходной файл выведите информацию о том, какие числа и сколько раз cодержатся в описанной таблице. Для каждого числа выведите одну cтроку, имеющую формат: число — количество вхождений этого числа. Числа должны быть упорядочены по возрастанию. Тире должно отделяться от чисел ровно одним пробелом.

Пример ввода: Пример вывода:
3
1 2 3
2
0 1
1 — 1
2 — 2
3 — 2
4 — 1
Пример ввода: Пример вывода:
3
1 2 3
2
0 0
1 — 2
2 — 2
3 — 2

program thread50774;
 
var
 
i, j, k, m, n: longint;
count: array [0..65535] of longint;
a,b: array[0..100000] of longint;
 
begin
 
assign( input, 'input.txt' );
reset( input );
 
assign( output, 'output.txt' );
rewrite( output );
 
readln( n );
for i:=1 to n do begin read( a[i] ) end;
readln( m );
for j:=1 to m do begin read( b[j] ) end;
 
for k:=0 to 65535 do begin count[k]:= 0; end;
for i:=1 to n do
begin
    for j:=1 to m do
        begin
            k:= a[i]+b[j];
            count[k]:= count[k]+1;
        end;
end;
 
for k:=0 to 65535 do
begin
        if ( count[k]>0 ) then
        begin
                writeln( k, ' - ', count[k] );
        end;
end;
 
end.

Leave a Comment

62 − 54 =