Алан сильно любит решать по программированию и играть шахматы. в обоих сферах он хочет преуспеть, стать легендарным гроссмейстером. айдос как опытный тренер предложил ему у него потренироваться.
у айдоса определенное расписание на каждый из следующих n дней. в каждый из дней айдос тренирует только один вид, либо программирование, либо шахматы. алан хочет выбрать несколько подряд идущих дней для тренировки. также алан заметил, что если два дня подряд тренироваться в одной и той же сфере, то он устает, т.е. алану надо чередовать шахматы и программирование. алану выбрать максимальное количество подряд идущих дней так, чтобы он за этот период не устал тренироваться.
формат входного файла
первая строка входных данных содержит целое цисло n (1< =n< =2*1) — количество тренировочных дней у айдоса. вторая строка содержит n цифр 0 или 1 без пробелов —i-я цифра 0 если в i-й день айдос тренирует программирование, иначе айдос тренирует шахматы.
формат выходного файла
выведите одно число — максимальное количество подряд идущих тренировочных дней для алана.
Основание системы счисления — количество цифр и символов, применяющихся для изображения числа.
Пример: Для десятичной системы счисления основание равно 10.
Алафавит — множество символов, используемых для формирования числа в определенной системе числения (цифры, буквы и другие символы)
Пример: Алфавит шестнадцатеричной системы счисления: 0-9, A-F.
Развернутая форма записи числа — запись в виде разрядных слагаемых, записанных с степени соответствующего разряда и основания степени.
Пример:
Разряд (позиция, место) — структурный элемент представления чисел в позиционных системах счисления.
Пример: В числе 135 цифра 5 - нулевой разряд, 3 - первый, 1 - второй.
Число — понятие в математике, используемое для количественной характеристики, сравнения, нумерации объектов и тому подобное.
Пример:
Цифра — один из знаков от 0 до 9, используемый для записи числа.
// Внимание! Если программа не работает, обновите версию!
№1
begin
var s:=ArrRandom(ReadInteger('k='),1,50); s.Println;
var min:=s.Min;
s.Transform(x->x-Min); s.Println
end.
Пример
k= 13
41 31 28 2 50 46 7 31 40 30 13 8 26
39 29 26 0 48 44 5 29 38 28 11 6 24
№2
begin
var m:=ReadInteger('Количество строк в матрице:');
var k:=ReadInteger('Количество столбцов в матрице:');
Writeln('*** Исходная матрица [',m,',',k,'] ***');
var a:=MatrRandom(m,k,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('Первые положительные элементы в строках');
a.Rows.Select(r->r.Where(x->x>0).Take(1)).SelectMany(x->x).Println
end.
Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
-91 -83 -26 4 -40 33 -40 -6
71 -87 -8 65 94 -19 59 -9
-91 -17 69 32 30 90 63 4
-53 -52 93 4 -34 -70 -75 -95
-99 -42 95 69 -70 -62 39 -22
Первые положительные элементы в строках
4 71 69 93 95