Esercizio Ascensori
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