Donat un enter n, definim el seu simètric com a −n. Per exemple, el simètric de 3 és −3, i el simètric de −6 és el 6.
Sigui un vector v = [x0, x1, x2, …, xn−1] (n és parell) tal que per qualsevol element de v, el seu simètric també està a v i no hi ha elements repetits.
Definim la distància entre un número x i el seu simètric −x com el nombre de números que hi ha entre tots dos.
Per exemple, si v = [3,−3,−5,2,−2,5], tenim que
la distància entre 3 i el seu simètric és 0,
la distància entre −5 i el seu simètric és 2,
la distància entre 2 i el seu simètric és 0.
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], la funció tornarà 2, que és la distància entre 5 i el seu simètric.
Després heu de fer un programa principal que llegeixi una seqüència d’enters acabada en 0, crei el vector amb tots els elements llegits menys el 0, cridi a la funció anterior i mostri el resultat per pantalla
Entrada
Una seqüència d’enters acabada en 0. 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.
Input
1 3 2 -3 -2 -1 0
Output
4
Input
2 -1 -3 -2 3 1 0
Output
3