vitaly1552
11.10.2020 15:05

Дан массив a длины 3 из целых чисел. Определим операцию изменения массива: выбирается два различных индекса i
и
j
(
1

i
,
j

3
,
i

j
), после чего
a
[
i
]
становится равным
a
[
i
]

a[
]

.

Пример операции: дан массив

[

1

,



3

,

2

]

, выбрали

i

=

2

,

j

=

1

, получили массив

[

1

,



3



1

,

2

]

=

[

1

,



4

,

2

]

.

Определим для массива

a

медиану

m

как значение, расположенное на позиции

2

при сортировке элементов массива

a

.

К примеру, медианой массива

a

=

[
1
,

3
,
2
]
является
m
=
1
, так как в сортированном массиве
[

3
,
1
,
2
]
именно
1
стоит на позиции
2
.
Назовём медианным индексом такой индекс
i
, что
a
i
=
m
.Обратите внимание, что медианный индекс необязательно единственный: в массиве a = [3,0,3] медиана m = 3, а медианными индексами являются i1 = 1 (a1 = m) и i2 = 3 (a3 = m).Для каждого индекса i массива a выясните, может ли он стать медианным, если можно сделать не более одной операции изменения массива (можно не делать операций вовсе).Формат ввода. В единственной строке даны 3 целых числа ai (−109≤ai≤109), разделенные пробелами. Формат выводаДля каждого индекса i (1≤i≤3) выведите в отдельной строке ответ: YES, если после не более,чем одной операции изменения массива i может стать медианным индексом; NO — иначе.
Примечания:В первом тесте a = [2,6,5].Если сделать операцию изменения i=2,j=3, то получится массив [2,1,5], медиана будет равна 2, а значит i = 1 будет являться медианным индексом.Если сделать операцию изменения i=2,j=1, то получится массив [2,4,5], медиана будет равна 4, а значит i = 2 будет являться медианным индексом. Если не делать никаких операций изменения, то медианой массива
[2,6,5] будет 5, а значит i = 3 будет являться медианным индексом. Аналогично i=3 будет медианным индексом после операции изменения i=3,j=1.Во втором тесте единственной операцией изменения, делающей индекс i=2 медианным, является операция i=2,j=2, но такая операция не является корректной, так как индексы i должны быть различны.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
xFørŻe
27.02.2020 05:07

"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?


про пятеричные записи ничего не понял...  :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию

var x,a,b: longint;


begin

   for var i := 999 DownTo 100 do begin

       a := 0;

       b := 1;

       x := i;

       while x>0 do begin

           if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);

           x := x div 5;

       end;

       if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);

   end;

end.


прога проводит расчет для всх трехзначных чисел от 999 до 100

итого мы видим что максимальное подходящее число это 960

при необходимости прогу можно переделать чтобы она находила только максимальное число.

0,0(0 оценок)
Ответ:
elizavetafilip2
04.07.2022 11:31

procedure CalcArray (const Ax: array of Integer; var S: Integer; var M: Real); // var в параметрах означает, что переменная используется для возврата значения

var

i, c: Integer;

begin

S := 0;

c := 0;

for i := 0 to High (Ax) do begin

S := S + Ax [i]; // здесь накапливаем сумму элементов

c := c + 1;

end;

M := S / c; // когда найдена сумму, рассчитываем среднеарифметическое

end;

var

A: array [0..4] of Integer; // размерность массивов можно делать любой, но начинаться с 0

B: array [0..14] of Integer;

C: array [0..9] of Integer;

i, s: Integer;

m: Real;

begin

SetConsoleCP (1251);

SetConsoleOutputCP (1251);

Randomize; // инициализация датчика случайных чисел

WriteLn ('Массив 1:');

for i := Low (A) to High (A) do begin

A [i] := Random (10); // заполняем элементы массива случайными значениями

Write (IntToStr (A [i]) + ' '); // выводим их для просмотра

end;

CalcArray (A, s, m); // вызов процедуры

WriteLn; // показываем возвращаемые из функции переменные

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

WriteLn; // аналогично поступаем с другими массивами

WriteLn ('Массив 2:');

for i := Low (B) to High (B) do begin

B [i] := Random (10);

Write (IntToStr (B [i]) + ' ');

end;

CalcArray (B, s, m);

WriteLn;

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

WriteLn;

WriteLn ('Массив 3:');

for i := Low (C) to High (C) do begin

C [i] := Random (10);

Write (IntToStr (C [i]) + ' ');

end;

CalcArray (C, s, m);

WriteLn;

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота