Vector Encadenat. X39054


Statement
 

pdf   zip   main.R

Sigui VV un vector de mida NN que conté una permutació de {1,2,3,,N}\{1,2,3,\dots, N\} (els seus subíndexos). Donat el vector VV, i una posició inicial pp, podem descriure un camí d’aquesta manera: Comencem a la posició pp. La següent posició serà V[p]V[p], i la següent serà V[V[p]]V[V[p]] i així successivament. Per exemple, amb la posició inicial p=2p = 2, el vector:

V = 4 1 2 3

descriu el camí per les posicions p=2p=2, que és la primera, com ja hem dit, després anem a la posició V[2]=1V[2] = 1, és a dir, a la posició p=1p=1, després anem a la posició V[1]=4V[1] = 4, després anem a la posició V[4]=3V[4] = 3, i després a la posició V[3]=2V[3] = 2, i ja hem passat per totes les posicions del vector. De tota manera, pot passar que, donat un vector i una posició inicial, no puguem passar per totes les posicions del vector. Per exemple, en aquest cas, amb la posició inicial p=1p = 1:

V = 2 1 3 4

comencem a la posició 11, després la posició 22, i després a la posició 11 una altra vegada, sense possibilitat d’accedir a cap altra posició. Quan donat un vector VV i una posició pp podem recorre’l de manera que passem per totes les posicions, llavors diem que és un vector encadenat.

Escriu la funció encadenat (V,p) tal que, donats un vector VV i una posició inicial 1plen(V)1 \leq p \leq len(V), torni TRUE si i només si VV és un vector encadenat. Assumeix que VV de mida NN conté sempre una permutació de {1,2,3,,N}\{1,2,3,\dots, N\}.

La funció cal que es digui encadenat.

Entrada

Un vector VV d’enters de mida NN i una posició 1pN1 \leq p \leq N. VV conté sempre una permutació de {1,2,3,,N}\{1,2,3,\dots, N\}.

Sortida

TRUE si i només si VV és un vector encadenat.

Public test cases
  • Input

    4
    4 1 2 3
    2
    

    Output

    TRUE 
    
  • Input

    4
    2 1 3 4
    1
    

    Output

    FALSE 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    R
    User solutions
    R