вывод стандартный вывод стандартныйВова выиграл в олимпиадах n кубков. Каждый кубок
Вывод стандартный
вывод стандартный
Вова выиграл в олимпиадах n кубков. Каждый кубок или золотой, или серебряный. Все кубки размещены в ряд один за другим. Красой расположения кубков Вова именует длину наибольшего подотрезка из золотых кубков. Вова желает поменять местами не более одной пары кубков (не непременно соседних) так, чтоб сделать расположение кубков очень красивым максимизировать длину наивеличайшего подотрезка из золотых кубков. Помогите Вове! Сообщите, какую наивысшую длину величайшего подотрезка из золотых кубков он может получить, поменяв местами не более одной пары кубков. Входные данные 1-ая строчка содержит число n (2n105) количество выигранных Вовой кубков. 2-ая строка содержит последовательность из n символов G и S. Если i-й знак равен G, то i-й кубок золотой, по другому серебряный. Выходные данные В единственной строке выведите максимальную длину величайшего подотрезка из золотых кубков, которую Вова может получить, поменяв местами не более одной пары кубков.
испытания:
ввод:
10
GGGSGGGSGG
вывод:
7
Если будете сдавать в тестирующей системе, то заместо 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 (kgt;mxj) then mxj:=k;
k:=0;
end
else
begin
if kgt;0 then p:=1;
if kgt;mx then mx:=k;
end;
end;
end;
if mxgt;mxj then k:=mx+1
else k:=mxj+1;
if k=1 then k:=0;
writeln(k);
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.