М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
НяФФкА555
НяФФкА555
28.04.2020 08:34 •  Информатика

Внекоторой олимпиаде участвовало 360 человек. все работы пронумеровали натуральными числами от 1 до 360, номер каждой работы записали на титульном листе. после проверки оказалось, что порядок работ в стопке (снизу вверх) имеет необычный вид: 241, 242, 243, …, 359, 360, 121, 122, 123, …, 239, 240, 1, 2, 3, …, 119, 120. внутри каждой сотни работы по возрастанию номеров, но вот сотни переставлены местами. антону (одному из студентов, на олимпиаде) поручили упорядочить работы так, чтобы они лежали (снизу вверх) в порядке возрастания номеров: 1, 2, 3, …, 360. ему совершенно не хочется перекладывать все 360 работ, поэтому он решил, что будет делать только такие действия: возьмет непрерывный кусок из нескольких работ, перевернет, и вставит как целое на то же место. например, если бы в стопке лежало 5 работ в таком порядке: 1, 4, 3, 2, 5, то взяв и перевернув три средние работы, антон получит стопку 1, 2, 3, 4, 5. за какое наименьшее количество таких операций (одна операция это переворачивание куска работ) антон сможет сложить все работы в нужном порядке?

👇
Ответ:
kotkin
kotkin
28.04.2020

ответ:

как минимум 34 раза ( не знаю правильно или нет; )

4,7(4 оценок)
Открыть все ответы
Ответ:
elizavetanosova2000
elizavetanosova2000
28.04.2020
1)
uses crt;
const n=8;
var i:integer;
a:array[1..n] of integer;
begin
writeln('Input elements.');
for i:=1 to n do
read(a[i]);
for i:=1 to n do
if a[i]<0 then
write(a[i],' ');
end.
2)
uses crt;
const n=10;
var i,t:integer;
a:array[1..n] of integer;
begin
randomize;
t:=0;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(10,1);
write(a[i],' ');
if a[i] mod 2=0 then
t:=t+1;
end;
writeln(#13#10,t);
end.
3)
uses crt;
const n=10;
var i,sum,t:integer;
a:array[1..n] of integer;
begin
randomize;
sum:=0;
t:=0;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(10,1);
write(a[i],' ');
if a[i] mod 2=0 then
sum:=sum+a[i]
else
t:=t+1;
end;
writeln(#13#10,sum,' ',t);
end.
4)
uses crt;
const n=10;
var i:integer;
a:array[1..n] of integer;
begin
randomize;
for i:=1 to n do
begin
a[i]:=random(10,1);
write(a[i],' ');
if a[i] mod 2=0 then
a[i]:=2*a[i]
else
a[i]:=3*a[i];
end;
write(#13#10);
for i:=1 to n do
write(a[i],' ');
end.
4,8(18 оценок)
Ответ:
азат61
азат61
28.04.2020
Алгоритм
Ввод массива A[n,m]
Max := A[1,1]; k := 1; p := 1; s := 0;
Алгоритм
Ввод массива A[n,m]
Max := A[1,1]; k := 1; p := 1; c := 0;
Цикл по i от 1 до n (по строкам)
Цикл по j от 1 до m (по столбцам)
Если (A(i, j) = Max) and ((i<>k) or (j<>p)) То c := c+1;
Если (A(i, j) > Max) То
k := i; p := j; c := 1;
Max: = A(i, j);
Конец Если
Конец цикла по столбцам
Конец цикла по строкам
Вывод "Элемент ", Max, " встречается ", c, " раз"
Конец.

Программа
var A: array of array of integer
var i,j,m,n,k,p,s,Max: integer
BEGIN
uses crt; clrscr;
write ('Vvedite kol-vo strok: '); readln (n);
write ('Vvedite kol-vo stolbtsov: '); readln (m);
setlength(A,n,m);
for i=1 to n do
begin
for j=1 to m do
begin
write ('Vvedite element vassiva: '); readln (A[i,j]);
end;
end;
Max := A[1,1]; k := 1; p := 1; c := 0;
for i=1 to n do
begin
for j=1 to m do
begin
if (A(i, j) = Max) and ((i<>k) or (j<>p)) then c := c+1;
if (A(i, j) > Max) then
begin
k := i; p := j; c := 1;
Max: = A(i, j);
end;
end;
end;
write ('Element ', Max, ' vstrechaetsya ', c, ' raz');
END.
4,8(91 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ