Даны натуральное число n, целые a, x1 , … , xn. с клавиатуры вводится число а. если в последовательности x1 , , xn есть хотя бы один член, равный a , то получите сумму всех членов, следующих за первым таким членом; в противном случае ответом должно быть число -1.
begin
var x:=ArrRandom(ReadInteger('n='),1,99);
Writeln('Исходная последовательность'); x.Println;
var a:=ReadInteger('a=');
var i:=x.FindIndex(e->e=a);
if i<0 then Writeln(-1)
else
if i<x.Length-1 then Writeln(x[i+1:].Sum)
else Writeln(0)
end.
Тестовое решение:
n= 15
Исходная последовательность
26 50 92 84 30 60 9 95 46 47 59 54 97 11 36
a= 59
198
x:array [1..1000] of integer;
a, n, i, j, sum: integer;
begin
read(n, a);
for i := 1 to n do
read(x[i]);
i := 1;
while (x[i] <> a) and (i <= n) do
inc(i);
if i > n then
writeln(-1)
else
begin
for j := i + 1 to n do
sum := sum + x[j];
writeln(sum);
end;
end.