const
n = 15;
var
x: array[1..n] of integer;
i, k, t, min: integer;
begin
Randomize;
Writeln('Исходные элементы массива');
min := 1000;
for i := 1 to n do
begin
x[i] := Random(101) - 50;
Write(x[i]:4);
if min > x[i] then begin
min := x[i];
k := i
end
end;
t := x[k]; x[k] := x[1]; x[1] := t;
Writeln;
Writeln('Результирующие элементы массива');
for i := 1 to n do Write(x[i]:4);
Writeln
end.
Исходные элементы массива
-28 -22 -15 3 27 29 34 -29 -49 -37 -19 31 40 -36 4
Результирующие элементы массива
-49 -22 -15 3 27 29 34 -29 -28 -37 -19 31 40 -36 4
Объяснение:
Очевидно, решения нет, если нужно выпустить ровно 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")
begin
writeln('Введите целое число: ');
readln(a);
b:= a mod 2;
if b>0 then
writeln('Число нечётное') else
writeln('Число чётное');
if a>=10 then
writeln('Число >=10') else
writeln('Число =<10');
end.