Задача 10
const
MAX
= 100;
type
TArray = array[1..MAX] of
integer;
var
n
: integer; { количество элементов массива
}
i,
j : integer; { индексы элементов массива }
A
: TArray; { массив исходных данных }
b
: integer;
Flag
: Boolean;
begin
{
ввод исходных данных }
repeat
write('Введите количество
элементов массива, N: ');
readln(n);
until
(n > 1) and (n <= MAX);
writeln('Ввод элементов
массива A:');
for
i:=1 to n do read(A[i]);
write('Введите число
B: ');
readln(b);
Flag
:= False;
i
:= 1;
while
(2*a[i] < b) and (i <= n) do i := i+1;
If
a[i] + a[j] = b
then begin
Flag := True;
J := i
end
else if i <= n
then begin
j := i;
Repeat
While (a[i] + a[j] > b) and
(j >= 1) do j := j - 1;
While (a[i] + a[j] < b) and
(i <= n) do i := i + 1;
Flag := (a[i] + a[j] = b);
until Flag or (i > n) or (j <
1);
end;
If
Flag
Then Writeln(' i = ', i, ' j = ',
j)
Else Writeln(' No solutions' )
end.