Vectores normalizados X96647


Statement
 

pdf   zip

html

Un vector de puntos en el plano está normalizado si cumple todas las siguiente condiciones:

  1. El vector contiene al menos dos elementos diferentes.
  2. La suma de todas las coordenadas x’s de los puntos del vector coincide con la suma de todas las coordenadas y’s de los puntos del vector.
  3. El baricentro de los puntos del vector no aparece en el vector.

Recordad que el baricentro de un conjunto de puntos es el punto (x,y) del plano que tiene como coordenada x el valor medio de las coordenadas x’s de los puntos, y como coordenada y el valor medio de las coordenadas y’s de los puntos.


Haced un programa que lea vectores de puntos en el plano y determine si están normalizados o no.

Vuestro programa ha de utilizar la siguiente definición:

struct Punto {

  double x,y;

};

y también ha de definir, implementar y utilizar la función:

bool baricentro (const vector<Punto>& v, Punto& b);

que, dado un vector de puntos v, calcula en b el baricentro de los puntos de v, y devuelve un booleano que indica si b está o no en el vector v.

Entrada

La entrada consiste en diversas líneas con secuencias. Cada secuencia describe un vector de puntos mediante un natural n>0 y, a continuación, n pares de reales x1, y1, …, xn, yn que describen las coordenadas de los n puntos que forman el vector.

Salida

Para cada vector de puntos, la salida está formada por el baricentro de sus puntos y un indicador de si el vector es o no un vector normalizado. En caso de que no lo sea, la salida indica cuál de las tres propiedades de la definición es la primera que no se cumple.


Seguid el formato especificado en los ejemplos.


Los números reales se han de escribir con 2 cifras decimales. Utilizad:

cout.setf(ios::fixed);

cout.precision(2);

Public test cases
  • Input

    3 0 0 0 0 0 0
    4 1 0 1 1 1 0 1 0
    3 0 1 0 -1 0 0
    3 0 1 1 0 1 1
    4 0 0 1 0 0 1 0 0
    3 0 0 1 1 0 0
    

    Output

    baricentro: (0.00,0.00)
    el vector no cumple la propiedad 1
    baricentro: (1.00,0.25)
    el vector no cumple la propiedad 2
    baricentro: (0.00,0.00)
    el vector no cumple la propiedad 3
    baricentro: (0.67,0.67)
    vector normalizado
    baricentro: (0.25,0.25)
    vector normalizado
    baricentro: (0.33,0.33)
    vector normalizado
    
  • Information
    Author
    Maria J. Serna i Maria J. Blesa
    Language
    Spanish
    Translator
    Maria J. Blesa
    Original language
    Catalan
    Other languages
    Catalan English
    Official solutions
    Unknown. This problem is being checked.
    User solutions
    C++