MrPuk
12.07.2020 14:54

Правильно расписать на C++


Правильно расписать на C++

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
virina059
08.01.2022 02:51
Возможный вариант в C++
#include <iostream>
int main()
{
    using namespace std;
    int N;
    cout << "Enter N: ";
    cin >> N;
    int num;
    int max = 1;
    int i;
    for (i = 0; i < N; ++i)
    {
        cout << "Enter #" << i + 1 << " number: ";
        cin >> num;
        if ((num - 9) % 10 != 0 && num % 3 == 0)
        {
            max = num;
            break;
        }
    }
    for (int j = i + 1; j < N; ++j)
    {
        cout << "Enter #" << j + 1 << " number: ";
        cin >> num;
        if ((num - 9) % 10 != 0 && num % 3 == 0)
            if (num > max)
                max = num;
    }
    if (max != 1)
        cout << "Max number div by 3 and don't end 9: " << max << endl;
    else
        cout << "No numbers div by 3 and don't end 9" << endl;
    return 0;
}
0,0(0 оценок)
Ответ:
ok683000
21.05.2020 12:09

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