Equilibrats consecutius Y13847


Statement
 

pdf   zip

Feu un programa que, donats un enter positiu nn i una seqüència d’enters no negatius arbitràriament llarga, indiqui si la seqüència conté, en posicions consecutives, almenys nn nombres dos-tres-equilibrats.

Un nombre és dos-tres-equilibrat si o bé és zero, o bé és divisible per 22 tantes vegades com és divisible per 33. Per exemple, el 3030 és dos-tres-equilibrat perquè és divisible per 22 una vegada i és també divisible per 33 una vegada. El 1212, en canvi, no és dos-tres-equilibrat: es pot dividir per 22 dues vegades i per 33 tan sols una.

La solució ha de completar obligatòriamente l’esquema següent.

// Pre: m és un enter no negatiu (m >= 0)
// Post: retorna true si m és un nombre dos-tres-equilibrat,
//       retorna false altrament
bool es_equilibrat(int m) {
    ....
}

int main() {
    ....
}

Indicació: la funció és_equilibrat() no ha de fer càlculs innecessaris. Per exemple, per determinar que 10737418241073741824 (=230=2^{30}) no és equilibrat no calen gaires operacions.

Entrada

L’entrada consisteix en un enter n>0n > 0, seguit d’una seqüència arbitràriament llarga d’enters no negatius.

Sortida

Cal escriure TRUE si la seqüència conté, en posicions consecutives, almenys nn nombres dos-tres-equilibrats, i FALSE en cas contrari.

Public test cases
  • Input

    3
    5 6 12 30 
    

    Output

    FALSE
    
  • Input

    3
    5 6 30 12
    

    Output

    TRUE
    
  • Input

    1
    2 3 18
    

    Output

    FALSE
    
  • Input

    4
    2 1 0 7 180 3
    

    Output

    TRUE
    
  • Input

    1
    
    
    

    Output

    FALSE
    
  • Information
    Author
    Pro1
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++