Прохожу контест от Тинькоффа. По тестам показывает, что это частичное условие. В чем может быть проблема?

Прохожу контест от Тинькоффа. По тестам показывает, что это частичное решение. В чем может быть проблема? Снизу представлена задача с тренировочного Тинькофф контеста.

Мои рассуждения таковы : Если нельзя успеть пройти всех сотрудников за время t, при котором мы успеваем или с первого этажа или с последнего этажа дойти до сотрудника, который уходит. Тогда выгоднее всего сразу доехать до этажа, уходящего сотрудника, а потом сделать одну из двух операций — либо подняться на самый верх, а потом спуститься вниз, либо спуститься на самый низ, а потом подняться наверх. Если уезжающий сотрудник был на этаже x, то получившимися формулами будет max − min + max − x и max − min + x − min соответственно, осталось только найти минимум из этих двух величин.

Кате надо передать n разных договоров коллегам. Все встречи происходят на разных этажах, а между этажами можно перемещаться только по лестничным пролетам — считается, что это улучшает физическую форму сотрудников. Прохождение каждого пролета занимает ровно 1 минуту. Сейчас Катя на парковочном этаже, планирует свой маршрут. Коллег можно посетить в любом порядке, но один из них покинет офис через t минут. С парковочного этажа лестницы нет — только лифт, на котором можно подняться на любой этаж.

В итоге план Кати следующий:

Подняться на лифте на произвольный этаж. Считается, что лифт поднимается на любой этаж за 0 минут. Передать всем коллегам договоры, перемещаясь между этажами по лестнице. Считается, что договоры на этаже передаются мгновенно. В первые t минут передать договор тому коллеге, который планирует уйти. Пройти минимальное количество лестничных пролетов. Помогите Кате выполнить все пункты ее плана.

Формат входных данных:

В первой строке вводятся целые положительные числа n и t (2≤n,t≤100) — количество сотрудников и время, когда один из сотрудников покинет офис (в минутах). В следующей строке n чисел — номера этажей, на которых находятся сотрудники. Все числа различны и по абсолютной величине не превосходят 100. Номера этажей даны в порядке возрастания. В следующей строке записан номер сотрудника, который уйдет через t минут.

Формат выходных данных:

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

Замечание:

  • В первом примере времени достаточно, чтобы Катя поднялась по этажам по порядку.
  • Во втором примере Кате понадобится подняться к уходящему сотруднику, а потом пройти всех остальных — например, в порядке {1,2,3,4,6}

Примеры данных

Пример 1

Ввод

5  5
1  4  9  16  25
2

Вывод

24

Пример 2 Ввод

6  4
1  2  3  6  8  25
5

Вывод

31
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int t = scanner.nextInt();

int[] floors = new int[n];
for (int i = 0; i < n; i++) {
    floors[i] = scanner.nextInt();
}

int leavingPerson = scanner.nextInt();
int time = 0;

int timeFromLastFloor = floors[n - 1] - floors[leavingPerson - 1];
int timeFromFirstFloor = floors[leavingPerson - 1] - floors[0];
if (t < timeFromFirstFloor || t > timeFromLastFloor) {
    if (timeFromLastFloor < timeFromFirstFloor) {
        time += timeFromLastFloor;
    } else {
        time += floors[leavingPerson - 1] - floors[0];
    }
}
time += floors[n - 1] - floors[0];
System.out.println(time);

Ответы (0 шт):