Itina321t
?>

Дано натуральное число. установить является ли последовательность его цифр при просмотре их слева направо по неубыванию. например, для чисел 5321 и 9663 ответ положительный , для чисел 7820 и 9663 отрицательный и т.п. написать программу на паскале, не используя массивы, boolean

Информатика

Ответы

abroskin2002
Var s: string;
begin
  write('число:  '); readln(s);
  if s=s.Sorted.Reverse.JoinIntoString('') then
  writeln('упорядочено по неубыванию')
  else writeln('НЕ упорядочено');
end.    
cmenick29

#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. квест новый квест, в котором участники должны выбраться с территории проведения, представляет соб
АнжелаВасильевич

Очевидно, решения нет, если нужно выпустить ровно 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")

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дано натуральное число. установить является ли последовательность его цифр при просмотре их слева направо по неубыванию. например, для чисел 5321 и 9663 ответ положительный , для чисел 7820 и 9663 отрицательный и т.п. написать программу на паскале, не используя массивы, boolean
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

msburmis
s-laplandia6
ВасилийКлимова1695
bessalaias
Tochkamail370
nataljatchetvertnova
olimov9
Gradus469
masamosijcuk140244
snip99
elena
Юрьевна174
Valentina
Олег1105
rgmarket