Если будете сдавать в тестирующей системе, то вместо string, лучше использовать массив char - работает быстрее.
var n,i,k,p,mx,mxj: integer;
s: array[1..100000] of char;
begin
readln(n);
for i:=1 to n do read(s[i]);
k:=0; p:=0;
mx:=0; mxj:=0;
for i:=1 to n do
begin
if s[i]='G' then k:=k+1
else
begin
if p=1 then
begin
p:=0;
if s[i-1]='G' then
if (k>mxj) then mxj:=k;
k:=0;
end
else
begin
if k>0 then p:=1;
if k>mx then mx:=k;
end;
end;
end;
if mx>mxj then k:=mx+1
else k:=mxj+1;
if k=1 then k:=0;
writeln(k);
end.
program first;
var a:array[1..100] of integer;
i,s,k,n,c:integer;
sr:real;
begin
read(n); {кол-во элементов массива}
for i:=1 to n do
read(a[i]); {ввод массива}
read(c); {ввод числа C}
s:=0; k:=0;
for i:=1 to n do
if (a[i]>c) then begin s:=s+a[i]; k:=k+1; end;
sr:=s/k; {считаем среднее арефмет.}
writeln(sr); {выводим ср. арефм.}
for i:=1 to n do
if a[i] mod 2<>0 then write(a[i],' '); {делаем 2 пункт}
writeln;
s:=0; k:=0; {обнулим чтобы использовать еще раз}
for i:=1 to n do
if a[i] mod 2<>0 then begin s:=s+a[i]; k:=k+1; end;
sr:=s/k;
writeln(sr);
end.
Відповідь:
Арифметические выражения
Вспомним оператор присваивания. Общий вид можно записать таким образом:
имя_переменной = выражение
Выражение, стоящее в правой части оператора присваивания, позволяет вычислять значения переменных по различным формулам.
Выражение может содержать:
• целые и вещественные числа (в вещественных числах целая и дробная часть разделяются точкой, а не запятой, как это принято в математике)
• знаки арифметических действий:
+ сложение,
- вычитание,
* умножение,
/ деление
**возведение в степень;
• вызовы стандартных функций (приведем только часть из большого набора. Все математические функции описаны в библиотеке math, которую необходимо подключить с использованием строки import math )
abs(n) модуль целого числа n
math.fabs(x) модуль вещественного числа x
math.sqrt(x) квадратный корень из вещественного числа x
math.pow(x,y) вычисляет x в степени y;
Пояснення: