Ниже приведен сценарий с требованиями - это проблема с взломом.
В блоке 7 этажей и только 2 лифта. Первоначально лифт A находится на первом этаже, а лифт B - на верхнем этаже. Всякий раз, когда кто-то вызывает лифт с N-го этажа, ближайший к нему лифт приходит за ним. Если оба лифта находятся на одинаковом расстоянии от N-го этажа, их поднимает лифт с нижнего этажа.
Я пытаюсь написать код Java для вышеуказанного сценария, но не смог получить ожидаемый результат
Я инициализировал целые числа для положения обоих лифтов и целое число для вызова на полу. Я использовал условие с операторами, чтобы найти позицию и напечатал, какой лифт достигнет пользователя. Что может быть правильной процедурой программирования для постановки задачи. Пожалуйста, помогите. ТИА.
import java.util.*;
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner s = new Scanner(System.in);
int count=s.nextInt();
int[] fc=new int[count];
int posA=0;
int posB=7;
for(int i=0;i<count;i++){
fc[i]=s.nextInt();
if((fc[i]-posA)<(posB-fc[i])){
posA=fc[i];
System.out.println("A");
}
if((fc[i]-posA)==(posB-fc[i])){
if(posA<posB){
posA=fc[i];
System.out.println("A");
}
else if(posA>posB){
posB=fc[i];
System.out.println("B");
}
}
else{
posB=fc[i];
System.out.println("B");
}
}
}
}
Мои входные, текущие и ожидаемые значения указаны ниже.
Ввод - 10 0 6 4 1 1 2 4 0 3 1
Токовый выход - A B B B A B B B A B
Ожидаемый результат - A B B A A A B A B A