Simètrics. X87874


Statement
 

pdf   zip

Donat un enter nn, definim el seu simètric com a n-n. Per exemple, el simètric de 33 és 3-3, i el simètric de 6-6 és el 66.

Sigui un vector v=[x0,x1,x2,,xn1]v = [x_0, x_1, x_2, \dots, x_{n-1}] (nn és parell) tal que per qualsevol element de vv, el seu simètric també està a vv i no hi ha elements repetits.

Definim la distància entre un número xx i el seu simètric x-x com el nombre de números que hi ha entre tots dos.

Per exemple, si v=[3,3,5,2,2,5]v = [3,-3,-5,2,-2,5], tenim que

la distància entre 33 i el seu simètric és 00,

la distància entre 5-5 i el seu simètric és 22,

la distància entre 22 i el seu simètric és 00.

Feu la funció :

int simetric(const vector<int>& v){

// Pre: v es un vector no buit de longitut parell

// on per a cada element existeix el seu simètric

// Post: retorna la distància màxima

En l’exemple anterior, en què v=[3,3,5,2,2,5]v = [3,-3,-5,2,-2,5], la funció tornarà 22, que és la distància entre 55 i el seu simètric.

Després heu de fer un programa principal que llegeixi una seqüència d’enters acabada en 00, crei el vector amb tots els elements llegits menys el 00, cridi a la funció anterior i mostri el resultat per pantalla

Entrada

Una seqüència d’enters acabada en 00. La seqüència no conté elements repetits i per a cada element existeix el seu simètric.

Sortida

El màxim de totes les distàncies que hi ha entre un element i el seu simètric.

Public test cases
  • Input

    1 3 2 -3 -2 -1 0
    

    Output

    4
    
  • Input

    2 -1 -3 -2 3 1 0
    

    Output

    3
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++