Mitjana menor d'un vector X21191


Statement
 

pdf   zip

html

Donat un vector d’enters v i un enter 0 < kv.size(), volem trobar el subvector de v de mida k amb una mitjana menor.

Per exemple, si v = [3, 7, 90, 20, 10, 50, 20] i k = 3 els subvectors entre els índexs 3 i 5 ([20, 10, 50]), i entre els índexs 4 i 6 ([10, 50, 20]) són els de menor mitjana d’entre tots els subvectors de v de mida 3.

Partiu de l’especificació següent:

int mitjana_menor(const vector<int> &v, int k) /* Pre: 0 < k <= v.size() */ /* Post: Retorna l'index del primer element del subvector v de llargada k amb una mitjana menor; si hi ha mes d'un subvector amb una mitjana menor, retorna el que tingui un index menor */

Si aquesta funció es crida amb els valors de v i k donats a l’exemple, ha de retornar l’index 3 (que assenyala el primer 20).

Entrada

Com a entrada hi haurà la mida del vector i els elements del vector. A continuació hi haurà una llista amb un o més valors enters que seran diferents valors de k.

Sortida

Com a sortida es mostrarà el contingut del vector d’entrada (els valors del vector separats amb una coma entremig dels símbols [ i ]) i el resultat de la funció mitjana_menor per cada valor k d’entrada.

Observació

Heu d’enviar el fitxer amb la funció demanada i el programa principal que la usi.

Public test cases
  • Input

    7
    3 7 90 20 10 50 20
    3
    

    Output

    [3,7,90,20,10,50,20]
    3
    
  • Input

    11
    1 0 2 9 3 8 4 2 5 1 -1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    

    Output

    [1,0,2,9,3,8,4,2,5,1,-1]
    10
    9
    0
    7
    6
    5
    4
    0
    2
    1
    0
    
  • Information
    Author
    Neus Català - Jordi Esteve
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++