In un palazzo ci sono 7 piani e due ascensori. Inizialmente l’ascensore A si trova al piano 0 mentre l’ascensore B si trova al piano 7.Quando qualcuno chiama un ascensore dal piano N, quello che è più vicino al piano provvederà a muoversi per prendere la persona. Se tutti e due gli ascensori sono equidistanti, si muoverà l’ascensore che si trova al piano più basso.
Input
T – Numero di test case
N – piano dal quale l’ascensore viene chiamato.
T = 3
N = 3
N = 1
N = 6
Output
A
A
B
Di seguito una soluzione proposta in linguaggio C++
#include <iostream>
using namespace std;
int main() {
int T,N;
cin >> T;
int A=0;
int B=7;
int distA;
int distB;
for(int i=0; i < T ; i++)
{
cin>>N;
if(N>=0 && N<=7){
//calcolo la distanza di A
if(N>A)
distA = N-A;
else
distA = A-N;
//calcolo la distanza di B
if(N>B)
distB = N-B;
else
distB= B-N;
if(distA<distB)
{
cout<<"A"<<endl;
A=N;
}
else if(distA>distB)
{
cout<<"B"<<endl;
B=N;
}
else
{
if(A<B){
cout<<"A"<<endl;
A=N;
}
else {
cout<<"B"<<endl;
B=N;
}
}
}
}
}
Torna a informatica
Comments
comments

