Присоединиться

11 класс·высокий уровень

На вход программе подается последовательность целых чисел. В первой

Условие

На вход программе подается последовательность целых чисел. В первой строке сообщается количество чисел N, во второй строке идут сами числа.

Требуется написать программу, которая будет выводить на экран числа в следующем порядке:сначала отрицательные числа, потом положительные. При этом должно сохраняться исходное взаимное положение, как среди отрицательных, так и среди положительных чисел Вам предлагается два задания с похожими условиями: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору. Задание Б более сложное, его решение оценивается выше. Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Задание А. Имеется набор данных, состоящий из N = 20 пар целых чисел. Напишите программу для решения такой задачи. В этом варианте задания оценивается только правильность программы, время работы и размер использованной памяти не имеют значения.

Максимальная оценка за правильную программу - 2 балла. Задание Б. Имеется набор данных, состоящий из почти произвольного количества N целых чисел, чисел не может быть больше ста, N < 100. Напишите программу для решения такой задачи.

Постарайтесь сделать программу эффективной по времени и используемой памяти (или хотя бы по одной из этих характеристик).Программа считается эффективной по времени, если время работы программы пропорционально количеству пар чисел N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз.

Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.

Максимальная оценка за правильную программу, эффективную по времени и памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. vara:array[1..100] of integer;N,i,k,j,x: integer;beginreadln(N);j:=0;k:=1;for i:=1 to N dobeginreadln(x);if x<0 thenbegina[k]:=x;k:=k+1;end;if x>0 thenbegina[N-j]:=x;j:=j+1;end;end;for i:=1 to N-j doif a[i]<>0 thenwriteln(a[i]);for i:=N downto N-j+1 doif a[i]<>0 thenwriteln(a[i]);end. Пример

Осталось ещё 1 шаг

  1. задачи А на языке Паскаль.var a: array[1..20]…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»

На вход программе подается последовательность целых чисел. В первой — решение с объяснением | Lom Ai