ответ: 400
Объяснение:
Мистер Фокс находится на 1999 этаже. Узнаем, на каких ближайших этажах останавливается грузовой лифт. Остаток от деления 1999 на 7 равен 4. Значит лифт останавливается тремя этажами ниже и четырьмя этажами выше (где остаток от деления номера этажа на 7 равен 1).
Вариант первый: холодильник доставляют на 1996 этаж (1999-3). В таком случае, за подъём по лестнице придётся заплатить 450 рублей (150×3).
Вариант второй: холодильник доставляют на 2003 этаж (1999+4). В таком случае, за спуск по лестнице придётся заплатить 400 рублей (100×4).
Итак, как можно увидеть, наименьшая сумма, которую придётся заплатить, равна 400 рублей.
public class MyClass {
public static void main(String args[]) {
System.out.println("4, 4, 5, 5 == " + isValidMove(4, 4, 5, 5));
System.out.println("4, 4, 4, 7 == " + isValidMove(4, 4, 4, 7));
}
public static boolean isValidMove(int fromRow, int fromCol, int toRow, int toCol) {
int i;
// Попытка двинуться в то место где фигура уже стоит
if (fromRow == toRow && fromCol == toCol)
return false;
// Collision detection
if (fromRow == toRow) {
// горизонтальное движение
if (fromCol < toCol) {
// вправо
for (i = fromCol + 1; i <= toCol; ++i)
if (!isValidPosition(fromRow, i))
return false;
} else {
// влево
for (i = fromCol - 1; i >= toCol; --i)
if (!isValidPosition(fromRow, i))
return false;
}
} else if (fromCol == toCol) {
// вертикальное движение
if (fromRow < toRow) {
// движение вниз
for (i = fromRow + 1; i <= toRow; ++i)
if (!isValidPosition(i, fromCol))
return false;
} else {
// движение вверх
for (i = fromRow - 1; i >= toRow; --i)
if (!isValidPosition(i, fromCol))
return false;
}
} else {
// не валидное движение
return false;
}
return true;
}
public static boolean isValidPosition(int row, int col) {
boolean result = false;
if (row > 0 && row < 7) {
result = true;
}
if (col > 0 && col < 7) {
result = true;
}
return result;
}
}
P.S.
Не забывайте нажать " ", поставить оценку, и если ответ удовлетворил, то выберите его как "Лучший" :)