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 -èsim element global (començant en u) dels elements continguts en el vector de vectors @V@. Sigui @V.size()@. Cal tenir en compte que, per a tota , @V[i]@ està ordenat de petit a gran. A més, no hi ha cap element repetit en tot @V@.
Per exemple, si , , 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 @V[i].size()@. Podeu suposar que està entre 1 i , que 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”, i . La solució esperada en aquest cas té cost .
Només cal enviar el procediment demanat; el programa principal serà ignorat.