K-èsim element

Usant les definicions

        typedef vector<int> VE;
        typedef vector<VE> VVE;

implementeu una funció

        int k_esim(int k, const VVE& V);

que retorni el k-èsim element global (començant en u) dels elements
continguts en el vector de vectors @V@. Sigui n= @V.size()@. Cal tenir
en compte que, per a tota 0 ≤ i < n, @V[i]@ està ordenat de petit a
gran. A més, no hi ha cap element repetit en tot @V@.

Per exemple, si k = 5, n = 3, i els tres vectors són

V[0]

   1   2   10   15
  --- --- ---- ----

V[1]

   -5   -3   12
  ---- ---- ----

V[2]

   0   3   4   6   20
  --- --- --- --- ----

llavors la resposta és 2, que és el cinquè element més petit de tots els
vectors.

Sigui $m = \sum_0^{n-1}$ @V[i].size()@. Podeu suposar que k està entre 1
i m, que n està entre 2 i 500, i que algun @V[i]@ pot estar buit. Si us
cal, podeu implementar procediments auxiliars. Tingueu en compte que, en
els jocs de proves “grossos”, k = Θ(n) i m = Θ(n²). La solució esperada
en aquest cas té cost Θ(nlog n).

Observació

Només cal enviar el procediment demanat; el programa principal serà
ignorat.

Informació del problema

Autoria: Enric Rodríguez

Generació: 2026-01-25T11:17:24.079Z

© Jutge.org, 2006–2026.
https://jutge.org
