СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
Информатика
Cайты, меню, вход, новости


Задания
Версия для печати и копирования в MS Word
Задание 27 № 5535

На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы — это вещественное неотрицательное число, записанное с точностью до одного знака после десятичной точки. Частиц, скорость которых измерена, может быть очень много, но не может быть меньше трёх. Все значения скоростей не превосходят 100000. При обработке результатов в каждой серии эксперимента отбирается основное множество частиц. Это такое непустое подмножество частиц, для которого произведение скоростей является максимально возможным. Если таких подмножеств несколько, то из них выбирается множество, которое содержит наименьшее количество элементов. В основное множество могут войти, например, как все частицы, так и ровно одна частица. Если числовое множество содержит только одно число х, то произведением элементов этого множества является число х.

 

Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя количество элементов в основном множестве и значение минимального элемента в этом множестве. Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.

 

На вход программе в первой строке подаётся количество частиц N. В каждой из последующих N строк записано одно неотрицательное вещественное число с точностью до 1 знака после десятичной точки. Пример входных данных:

 

5

 

123.4

0.2

7.2

0.0

314 .1

 

Программа должна вывести сначала размер основного множества, а затем его минимальный элемент.

 

Пример выходных данных для приведённого выше примера входных данных:

 

3 7.2

Решение.

(допускаются иные формулировки ответа не искажающие его смысла)

Основное множество состоит из всех скоростей, больших 1. Если же все скорости не превосходят 1. то множество состоит из одной частицы, имеющей максимальную скорость.

Программа читает все входные данные один раз. не запоминая все входные данные в массиве, размер которого равен N. При этом подсчитываются следующие величины:

- текущее количество В значений, которые превосходят 1;

- текущий минимум С среди этих значений;

- текущее максимальное значение M среди всех прочитанных чисел. Если в итоге количество чисел больших 1 положительно, то B выводится в качестве размера основного множества, затем выводится минимальное значение С. В противном случае в качестве размера основного множества выводится 1, в качестве значения минимума — число M.

 

Пример правильной и эффективной программы на языке Паскаль:

var n, i, В: longint;

а, М, С: real;

begin

readl.n(n) ;

В := 0;

М := 0;

С := 200000;

for i := 1 to n do begin

readln(a);

if a > M then

M := a;

if a > 1 then begin

В := В + 1;

if a < С then С := a;

end;

end;

if В = 0 then

writeln(1,' ', M)

else

writeln(B, ' ', C);

end.

 

Пример правильной н эффективной программы на языке Бейсик:

INPUT n

M = 0

B = 0

C = 100001

FOR i = 1 ТО n

INPUT А

IF а > M

THEN M = а

IF А > 1

THEN В = В + 1

IF А < С THEN С = a

ENDIF

NEXT i

IF В = 0 THEN

PRINT 1, М

ELSE

PRINT В, С

END IF

END


Аналоги к заданию № 5375: 5407 5439 5535 5567 Все

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 3.