Fes una funció amb la capçalera:
double mediana(const vector<int>& v);
que rep un vector d’enters ordenat i retorna la seva mediana.
La mediana es defineix com el “valor central” d’un vector ordenat. És a dir, és un element tal que té el 50% d’elements restants per sobre i l’altre 50% per sota. Si el vector d’enters té un número d’elements senar, la mediana és l’element del mig exactament. Si el vector té un número d’elements parell, la mediana és la mitjana entre els dos valors centrals.
La funció rep un vector d’enters ordenat, que té com a mínim un element.
La funcio retorna la mediana segons la definició donada més amunt. Per aquesta definició, la mediana d’un vector d’enters pot ser un real.
El programa principal que fa servir el Jutge per provar el programa és:
vector<int> v;
int n;
while (cin >> n) {
v.push_back(n);
}
sort(v.begin(), v.end());
cout.setprecision(2);
cout << mediana(v) << endl;
Input
0 5 10
Output
5
Input
1 2 3 4
Output
2.5
Input
1 12 1 1 13 1 14 3 15
Output
3