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

4. квест
новый квест, в котором участники должны выбраться с территории проведения,
представляет собой прямоугольник из 16 комнат в виде квадрата 4 × 4. каждая комната имеет
четыре двери, ведущие в соседние комнаты, из комнат на краю прямоугольника двери ведут
наружу, через эти двери можно покинуть территорию проведения квеста.
в начале квеста в каждой комнате находится по человеку, а все двери заперты. после
начала квеста организаторы дистанционно открывают в каждой комнате запирающий
механизм одной из четырёх дверей. теперь человек, находящийся в этой комнате, может
открыть эту дверь и перейти в соседнюю комнату, через другие три двери выйти из этой
комнаты нельзя. при этом может оказаться так, что дверь, соединяющая две комнаты, будет
отпираться с одной стороны, тогда пройти через эту дверь можно только с той стороны,
с которой она будет открываться, проходить через дверь в обратном направлении нельзя, если
в соседней комнате будет отперта не эта дверь, а какая-то другая. если комната находится на
краю территории и из этой комнаты открыта дверь наружу, то, пройдя через эту дверь,
участник навсегда покидает территорию квеста.
после начала квеста и отпирания дверей участники начинают перемещаться между
комнатами. каждый участник перемещается в соседнюю открытую комнату и продолжает
перемещаться до тех пор, пока не покинет территорию квеста. однако возможна ситуация,
когда некоторые участники будут бесконечно перемещаться между комнатами и никогда не
выйдут наружу.
разработчки квеста попросили вас составить такой план отпирания дверей, при
котором ровно 7 человек из 16 смогут выбраться наружу с территории квеста. при этом вам
необходимо минимизировать количество дверей, которые будут открыты из крайних
комнат наружу (тех дверей, через которые участники будут покидать территорию
квеста).
ответ на эту нужно записать в виде плана территории квеста, состоящего
из 4 строк, в каждой строке должно быть ровно 4 символа из следующего числа возможных.
u: дверь в верхнюю по данному плану комнату.
d: дверь в нижнюю комнату.
l: дверь в левую комнату.
r: дверь в правую комнату.
например, рассмотрим следующий план квеста, в котором 8 комнат:
rdrr
ulrr
этот план соответствует следующему рисунку. стрелками обозначены открытые
двери, точками помечены комнаты, обитатели которых выйдут из квеста.
в этом примере наружу выходят 4 человека из 8.
вам необходимо составить план квеста из 4 рядов по 4 комнаты, в котором наружу
выходят 7 человек из 16. при этом чем меньше будет число дверей, открытых из крайних
комнат наружу, тем больше вы получите

👇
Открыть все ответы
Ответ:
Kfhjrhnf
Kfhjrhnf
08.01.2020

т.к. n заранее не дано(и это все лишь фрагмент кода) то m при разных n будет получаться разный. n лежит в промежутке [-2;8]

потому, что тут m:=(l+r)div 2; при n<-2 получается индекс <0

и при n>8  в цикле индекс >7

а массив у нас всего 8 элементов

Поэтому в цикле я вывел все значения m при всех возможных значениях n

Надеюсь понятно объяснил.

при n=-2   m=0

при n=-1   m=0

при n=0   m=0

при n=1   m=1

при n=2   m=2

при n=3   m=3

при n=4   m=4

при n=5   m=5

при n=6   m=6

при n=7   m=6

при n=8   m=6

Pascal

var

 a:array [0..7] of integer = (34, 16, 16, 2, 2, 0, -4, -4);

 l, n, m, key, r:integer;

 flag:boolean;

begin

 for n:=-2 to 8 do begin

   key:=-4;

   L:=1;

   r:=n;

   flag:=false;

   Repeat

     m:=(l+r)div 2;

     if a[m]>key then

       l:=m+1

     else

      if a[m]=key then

        flag:=true

      else

        r:=m-1;

   until flag or (l>r);

   writeln('при n=',n,'   m=', m);

 end;

end.


Пусть задан массив Аi={34, 16, 16, 2, 2, 0, -4, -4}, фрагмент программы L:=1; r:=n; flag:=false; Rep
4,6(30 оценок)
Ответ:
Krooop04
Krooop04
08.01.2020

a = 1; b = 4; c = 7

a = 1; b = 7; c = 4

a = 4; b = 7; c = 1

a = 4; b = 1; c = 7

Объяснение:

Вот код программы на C++:

#include <iostream>

using namespace std;

void main()

{

setlocale (LC_ALL, "RUS");

int a, b, c, M;

cout << "Введите число а: ";

cin >> a;

cout << "Введите число b: ";

cin >> b;

cout << "Введите число c: ";

cin >> c;

if (a > b)

{

 M = a;

}

else

{

 M = b;

}

if (c > b)

{

 M = c;

}

else

{

 M = b;

}

cout << "Наибольшее число: " << M << endl;

}

Можешь сам(а) на онлайн-компиляторе проверить выражения, если не уверен(а).

4,8(39 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ