Site icon Eserciziario di Gianluca Palmieri

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.

Esempio

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

Exit mobile version