Даны натуральное число n и целые числа q, a1,…,an, где n≤1000. Если в последовательности...

0 голосов
13 просмотров

Даны натуральное число n и целые числа q, a1,…,an, где n≤1000. Если в последовательности a1,…,an есть хотя бы один элемент, равный q, то получить сумму всех элементов, следующих за первым таким элементом; в противном случае ответом должно служить количество отрицательных элементов.


Информатика (15 баллов) | 13 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
  var q:=ReadInteger('q=');
  var p:=a.FindIndex(t->t=q);
  if p>=0 then Writeln('s=',a?[p+1:].Sum)
  else Writeln('Отрицательных: ',a.Where(t->t<0).Count)<br>end.

Пример
n= 20
36 -82 30 43 -46 70 88 50 -26 -98 -44 7 86 -62 60 59 67 -55 74 -11
q= 70
s=195
(150k баллов)
0 голосов

// PascalABC.NET 3.3

begin
  var n:=ReadInteger('n = ');
  var q:=ReadInteger('q = ');
  var a:=ArrRandom(n,-30,30); a.Println;
  if a.Where(x->x=q).Count>0
   then writeln('s = ',a.Where((x,i)->i>a.FindIndex(x->x=q)).Sum)
   else writeln('k = ',a.Where(x->(x<0)).Count);<br>end.

Пример:
n =  20
q =  10
20 22 2 -17 -16 3 -28 25 24 17 24 12 22 -17 -3 -24 -6 0 -17 -14
k = 9

(194k баллов)