В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
pascha2104
pascha2104
06.03.2020 20:40 •  Информатика

Можете объяснить как мы получаем эти числа ?

Показать ответ
Ответ:
xrxrxrxrxr
xrxrxrxrxr
18.08.2022 05:43

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,m,k;

cin>>n>>m>>k;

if(k==m*n-1){

   cout<<"IMPOSSIBLE";

   return 0;

}

char a[n][m];

for(int i = 0; i<n; i++){

   for(int j = 0; j<m; j++){

       if(k>0){

           a[i][j]='U';

           k--;

           cout<<'U';

       } else if((a[i-1][j]=='U' || i==0) && i==n-1 && j!=m-1){

           cout<<'R';

       } else if((a[i-1][j]=='U' || i==0) && i==n-1 && j==m-1){

           a[i][j] = 'L';

           cout<<'L';

       } else if(i==n-1 && a[i-1][j]!='U') {

           cout<<'U';

       } else {

           cout<<'D';

       }

   }

   cout<<endl;

}

return 0;

}

Объяснение

код написан на языке с++;

есть 5 случаев которые приведены в картинках ниже + случай когда n*m-1=k выводит Impossible


5. квест новый квест, в котором участники должны выбраться с территории проведения, представляет соб
5. квест новый квест, в котором участники должны выбраться с территории проведения, представляет соб
5. квест новый квест, в котором участники должны выбраться с территории проведения, представляет соб
5. квест новый квест, в котором участники должны выбраться с территории проведения, представляет соб
0,0(0 оценок)
Ответ:
BoPoHoK
BoPoHoK
18.08.2022 05:43

Очевидно, решения нет, если нужно выпустить ровно K = NM - 1 человека: он должен перейти в какую-то комнату, но из всех комнат, кроме его, есть путь наружу.

При всех остальных K можно, например, поступить так:

- отсчитать сверху и слева направо K комнат, в них открыть дверь вверх

- в оставшихся комнатах, не находящихся в нижнем ряду, открыть путь вниз

- в оставшихся комнатах нижнего ряда, кроме правого нижнего угла, открыть дверь вправо

- в правом нижнем углу, если там ещё не открыта дверь, открыть дверь влево

В итоге K человек уйдут с территории через верх, а остальные будут бесконечно ходить между двумя комнатами в правом нижнем углу.

Код (python 3):

N, M, K = map(int, input().split())

if K == N * M - 1:

   print("IMPOSSIBLE")

elif K == N * M:

   for _ in range(N):

       print("U" * M)

else:

   for _ in range(K // M):

       print("U" * M)

   if K // M < N - 1:

       print("U" * (K % M) + "D" * (M - K % M))

       for __ in range(N - 1 - K // M):

           print("D" * M)

       print("R" * (M - 1) + "L")

   else:

       print("U" * (K % M) + "R" * (M - K % M - 1) + "L")

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