1. Вычислить сумму всех элементов массива A. 2. Вычислить сумму отрицательных элементов массива A. 3. Вычислить сумму всех элементов массива A, которые делятся на 3. Ввод, макс 10 Хелп проспал урок
begin Randomize; writeln('Исходный массив'); for i := 1 to n do begin a[i] := Random(100) - 50; write(a[i]:6); if a[i] < 0 then a[i] := sqr(i) end; writeln; writeln('Результирующий массив'); for i := 1 to n do write(a[i]:6); writeln end.
Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i] TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2 TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2 TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Если все четыре типа не совпадают, то W[i+1] = W[i] Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Вроде все?
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку