Viene fornita una raccolta di coordinate N dimensionali. Un esempio è di seguito:
{2,3,4}
Questo può essere pensato come un array tridimensionale con 2x, 3y e 4z; potrebbe esserci un numero qualsiasi di dimensioni. Nell'esempio, ci sono 24 nodi totali. Ogni nodo può essere indicizzato usando {x, y, z}. Per accedere al 5 ° nodo, gli indici forniti sarebbero {0, 1, 0} in base alla tabella seguente.
## | x y z
0 1 2
-----------
0 | 0 0 0
1 | 0 0 1
2 | 0 0 2
3 | 0 0 3
4 | 0 1 0
5 | 0 1 1
6 | 0 1 2
7 | 0 1 3
8 | 0 2 0
...
23 | 1 2 3
Lo scopo di questa applicazione è di lavorare all'indietro per determinare un indice se viene assegnato un numero di nodo.
Se viene richiesto l'indice "y" dell'ottavo nodo, il programma dovrebbe stampare "2".
Con il seguente input fornito:
{2,3,4}|8|1
<List of Coordinates>|<Node>|<Index>
È necessario stampare quanto segue:
2
Puoi presumere che l'input verrà fornito in qualche modo conveniente nella tua lingua preferita e non richiede il controllo dei limiti. Ad esempio, si può presumere che l'indice di scelta fornito ("y" nell'esempio) sia valido rispetto alle coordinate fornite. È possibile utilizzare l'indicizzazione basata su 0 o 1; l'esempio presuppone 0 in base.
Questa è una specie del rovescio di questa domanda: indice di un array multidimensionale