La course aux plus grands
Vous êtes le plus petit nombre d'un tableau et vous devez rattraper, dans l'ordre croissant, chacun des nombres qui vous est supérieur en vous déplaçant le moins possible. Pour réduire vos déplacements, vous devrez parfois passer les limites du tableau afin de vous retrouver automatiquement transporté à l'autre bout.
Exemple
Prenons l'exemple du tableau [3, 1, 2, 4, 5].
- Vous êtes le 1 (à l'indice 1) et commencez par rejoindre le 2 (à l'indice 2) en avançant de 1 position.
- Vous rejoignez ensuite le 3 (à l'indice 0) en reculant de 2 positions.
- Vous atteignez alors le 4 (à l'indice 3) en reculant de 2 positions (dans l'autre sens il faudrait avancer de 3).
- Vous arrivez enfin au 5 (à l'indice 4) en avançant de 1 position.
Vous totalisez ainsi 6 déplacements (1+2+2+1) pour rattraper tous vos successeurs.

Attendus
Votre challenge consiste à créer une fonction rattraper qui prend en paramètre le tableau tab d'entiers distincts et qui renvoie le nombre minimum de déplacements à effectuer pour rattraper tous les successeurs, du plus petit nombre, dans l'ordre croissant.
Pour mieux structurer votre solution, vous commencerez par créer une fonction distance de paramètres i, j et n représentant respectivement l'indice de départ et l'indice d'arrivé dans un tableau de longueur n et qui renvoie le nombre minimum de déplacements à effectuer pour se rendre à l'indice j en partant de l'indice i.
Vous créerez aussi la fonction trier_indices dont le seul paramètre tab est le tableau des entiers distincts et qui renvoie la liste des indices des nombres du tableau tab triée suivant l'ordre croissant des entiers de tab.
Exemple
>>> distance(1, 3, 5)
2
>>> distance(0, 4, 5)
1
>>> trier_indices([3, 1, 2, 4, 5])
[1, 2, 0, 3, 4]
>>> rattraper([3, 1, 2, 4, 5])
6
.65038.128013.9875s3_8ufvIy n7aS1me(PV24:Cjtwi][hE)6o;bcdgù/T0làqAp.rL-,=+k95Rxé050P0t0C0p0E0V0d0m0O0V0p0d0d0)010C0E0Z010406050d0h0s0s0p0#0l040q0L0V0h140L0n0m020p0s0Z0M0m0.0t1e0#0X0h0t0d050S1b1d1f1h190Z041F1M051P0S1P1R1M190P0E0j0|0~10120H0E0Q0H0V1)0H0C17050@0N0V0t1!0 11011(1*1,1*0C1=1@1:0C0N0L0P1h1;0#1N0C0H0|1k0d0Z0p0n120x011_1$010i0_0t0n1s0t1:2h2j2o1{2r1@2u0s2w040b0m0v0#0L0Z0L0d0E1n1p0=2f0#0#0t0O2R1F2y0n1N0S2d2%0C2b2a2c0P2A121,0n2t2O1:1X1Z0}1`2;0E2?0n271Y1:0Z2W1N2#2%381a2i1p2|2p310#1e0V170m0r2!3c183b2z3e1{3g3i3k0x3n2j3p2#2:013u0p3j040m0e3y2$193B3s123E3G0m0y3K3A3c3C3Q3k0-3U3M3W3O3D0L3h3F3k0K3#3q3d1#3t3*3v3H0o3/3N3=3P3@3,3H0g3{3%3}3)3+3R0,433r453Y040r0U4a3;2}463^0r3m1G3o3$4b4j4d0r3x4o3z4q4i3f3 3G0r3J4w3L3:3X4B170r3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0r494/4P3?4X0x4g4^4z4`3^0x4n384V4$4,0x4v544#4c574E5a4*4Q514M5f4:5h400x4T5k4_3~4{4Z5q4 5s514(5v4W514.5A564{4@5E5c4X0e4}5I4;3^0e534p5b5O400e595S5g505V5e5Y5l5!3G0e5j5%5r4k5V5p5-5w5/5*5u5=5B5V5z5`5F5P5D5~5J5P5H625U3G0y5M665m685R4x5T6c170y5X6f5Z5x400y5$6l5(6n685,6r5.4d0y5;6w5?6y5_6B5{685}6F5 6o616J636o656N67170-6a6R6h040-6e4G6m5@6T6k6#6s6%6Y6q6*6x4,0-6v2$1O361F2`2*0P2.3C0O272G0;1Y1N350t373o3U05700=785.0+170=0i7a6$0D3k7k6+0n0i7h0E0d0@0n0O0t7o5.16040u7z6C170E7E3C7B0(3U0m6g3t170B7I3(7K7M7O3P170n7S457B0J0z4h3C7m3H0m7-7!4j0d0P17017@1w2t0j0L0E1^1@0m310s0N2W0m0s2 0E0s1c0m2T0P0:0Z0~7x2F0n0C0{0W0m0t0i0i2X0C1C0#0m2N0h8u0d1^2W0n0P2W7)3(7;3k7-0m8m0V002 1X7x0m0B8n1p2i0#7v0C8b7~8N8C0E8Q0E8b2j0{0h1p220t0p0h8Z0m0V1o0Q1C8x800m7@013#8J7N6$7g040E7j4N937p7G7V6$0L17020Q0C0M9d9b047R4N7W017B7(4U92929q0n7s7u9l5.9f040)9B7F969G3C9D0%9J4$7Q918J9q950t0`7y9p6$9s9Q9v9a6x9z0C9N459D9F999x9P9.9e179M9;9m7H9u9R94172W8s0#7Z9^6x0N1786a23a9Y177D9X9m1X9Aad7A177La39Ha8799=049@a9ae7t9)ah5?7$7M9$5?0O0r17038Z8f0p8h2t8k8b0E2W2Y0m0L8=8V8@1D8n0/2+0:860C0:1E4U065545957i7/2p7+7Naw3X7r042+7}0#0f8O8%1Da.1{7Bacas9%a^0p0Nb0127$9t5Na/8I7.a=8G7=048 7_0n7{7}8@0p8@au1^0=0{a}7x0{bv800L822Wbz8=8/8;0m1=8F458H7,7-a_0:0m1b1Y2j8Y8M3*8D1^0O2L7t0dbV8Z0{8183aV0PbGb71@bI1=8~7@9!aA3X7Y9*4j9,b~3fa5042Db99rabc69yb6b8bh7#170Jb`9qaCaEaQ3dbC8i8QaT1`0L0Oa`aUb+bCb-8laU8xbw8$by8*0n0{bK9{7.6$ca1=a|8Cc11{c0al7J170Gb3ao9mcIb4axcVc99ccd4j7B0Fak38b{9O9Ic*2paycT3(950i3*cQ7Xc=c/9q0L7+2 c~3Dc30#2j0Q9Wc#cU7Cc(04an3z9q7$0Fch6$cj04aF1o8n8p8r1C0m8-bJ0#8)aT0d0:1@2Y0Eds1e7tcl8v0t1mdx141,8z8u0~850:2d71bS3*0C0ucgcJc:a+17c|0#d6ca9`d19ed4di2$d)4sd8dadccYaidfc?7Pdhc69Lc6864Kc6bbb`9wcL7Ga7d6cSd;9_eb9|6+c{c}c_4c9:ei9Cd?d.d{0ndbe9c8e1c d:d~5?9D0*e60Ee8eBc704c.3od_3fb}eLead(9#cKem7G98es9HcN8Oez040Gdg88d5eT170Fe+eLe7046V6@aa04dmepb 9g9i9ke~eRcbcO0Pe)e=ddc;9ofacee|f9eE3Ce@e_7ec$e|bc4peWfqeQe2e-d@3Hd2179-e#b|9nekeXb5e%cPe/e*e,e)c-d.17fGf7fIfgdjed96effIe}fA3(eheP9/f5e(fRe,fWfdc+e:eO3zfsc fPf8fKfXdn6+dpdr1p8Bbo1^8-0E1B1yaKbqbs7ubuaVbxa d(9S9~0?8xfvf=eMfSe`cZb7f6f^eLd/fLgnflfieJ4efLd6end-f3ftegeugF3PeweyfIcXfT9mfvdkcffY4pa)gg04a-eLa:c9a@d921d90Z0tgEf-c@eAg.e2c!fh7Tcffo6W1{a:9ReLbNbl1xbn7|7~1^b,84a7883F8?8daHaJ8jcz8o8q2Y8t8vaR8ug(2+0pg+g-6b1{bN920O0H0pg5bBbDbub:1?8:hF0(cF0{bX0#bZ0|b$10b)2T1@8|0j3FdN8u8 f{b5gda%fZ9+fyfNa^dAg,f6a~h(g@fegOgofFb7e)d%54ecgQegh+gJd717c5gNdgg?gPd h}fpelh$i19Eh,h%gsg;12fjgBgffU0C0L0@0Vigfzf$6$inipeY04d,h,0+gH7Ggk9xgLd}iafmh^gx3(e@6!iPfef:d^f%gRe{7%fDglcafcix6+f#f;f%ijf*gt17iFf`eViee$is3Fig0*iwi,fUaf7v7xe)iOi-e)iVfwfUi(iMdej8i$eSileMic4xfqj6i3i+iWjah#5?959 gjh,irit3#gWdoaDdq0m0T1D8kbL4j951`g,avh)4s9(2jj3i7e?gzfkgSeNd6e@6?iTf.jYi3e@6Ah_fmjjjpi*fyi~j/5.iRjI2pjK10jMh,j1jRiLj,dej5iygz6)j$g/j(jO2pe@6.k8b1ajjZgzj+kfbacfivj=j96+j^4~3Cj{dSjNi)b5j 7wk1kleMk4krgzj#jXje9qksjh7Uj)kjh|koki17k7jAiBjL8Wjwh.a{i.kNabgwkLgziSkJkT04k7k.kP17kek=kb1{j!fLj.kq9Cj;d67Bk*k517jWe{kKl5gAfIl9kGkUj7k/k^e{gUg{12kvj}i3cMk#h:byj4l4le04kIl8lhlgk?k:lBk`imk,k}kSi3l3eIk@lEky5?e@k;lzlCk-lTlF01izk(e|j_1{lnkZlpfOlrk%h?j%0ulvj@gzli6+kOlXkMl.k9ldl=lflck/lyl^khlCkkjX0Fk~gl9,kpgllLjUeKl!l~lQk6lOi lwl7m4kalPgylNm1lCm3d lk3La*jJ17kYkxmnb5hpg*g,lulMlbmik/lSmqmjmt04l@d mSiQkHmmj?mk6TlIjnl1mwl$lmmDj|l)lXcamIhrmKgNl;m$mUm!k m{lVmRmPm}glk|mvl`kQfXmafx9Emdk+176E6/jsm.kwh,m?hsmLmglxn3nem|n6msmYm0mOlUm(lXmclAktc`njlom;9~0pg)m@htjcg^7Cm`mTm7lWnv45e@6Ik2nPmXnWmZn9lJn7nx5S0S7c776^n/0S6{1F0C6}n@2,2(26282*b;n;6{1LkD2W0s0f0i0p0+0t0f0H0e171x1zg50{g`6@1S3p0H0r0m0E0P12701daK0^bE170AcnowaNa br3(0H8:0=0#2=7g0m0H2W0i1203ou8i0@oD0d2n140C1@120vg,1e30bW2 950c0a1F0p2%oo3p1M0$b!3F0O0h0V8?dUkA8Q1XaO0C1^aK840=0h0/oqcDaV7b71c=n.3H0?7Npi9opi2UbE2N8C8Kg81X8p0:8B8Qpf7d2/0)oq0m0%8R1Fpo8^0#0dhBpA779`pojG8v1l0{0Qd9pspNpmpIpg8n8Y8mpOgY0mpD8SpGpQp$0P8+aU0|0 2f8jd9oD0!0m0ko~o8dO8;108)dWb;aNpuauk0pcp38rhE0|oHa70m1B8)hq0jg,8zcvaWaYa!a$8bhFb=8=bI1,dN8b001y358-p5dTaV0O0 gc8jo(0:1Xox1Dp~0I0V7 pSirdO2P1t1@oU0m0:0QhXptdU8^ex8{8ub/bJo0bI0s7|cGqa7uqcqe2Y1^p*2D0u1=0JpF8bp#7dp~q0808AjG1^8f0h0{1B008mhy7|2PdTbrri0{g+oZgb0|b.dNpbp11DhJ8w8uh986dSp@hd8gg68jpthidvg,0!1Oo@04oAovoqq18;8Y8V708xq91@cwhDbzp?hMhOb#rpb(8jhJ0_bS0h8p2QqDq71?r*brdRp5o hYcC8Pb.r/00bY840L0RrZ0mq2bWaVr%hnaNp~0vhn0m0l8v1fqo0nq9dsg+dO70cG2+0hoDg8s4gb0{r(8fpepi0uh70t0(gdd%pRbWbra_g,06bThWrOr:84r=b%hSaVsQ0{0p2r2Sb!1o7u2Qhl2tbTs5q.btb*qdh;rTomo30$brc|7w2Rplpgnmm^poqq0#qQsF8Y3F3*cz0doBqJbzqbkB0{p7h5s8h;r{0Oby2P0i0dt31V05oooqos01r#2W0%to1l2R170Y1m84tP1mdH7ZoF45oH0poJoL2noO8ooRtM0ttO1ktX1ooY2Qo#01o%3+o*bs0no-o/0So;1Fo?o30w7|ctdx2?0mt.dZtQtYhJqldP0_7t7~t71odGdshWhU8ub7tWr2piuura77hK067 qL0Vo|o~hTbr1Xts8QpkdUt8ups=dz8)p*to8W0tfQporFuSg,bquCs bAh%tF3p2`3C1}1+1-1/kD2C2t2v172I0qb#158Y0v0ldXgR76fl3979pigXgZjhg#gta@rCj4f_nynIfCnumGamh|ok4O5?g}bgjhh07^h2g1p@sQ8587890shc8erMoUhhduhku$u!tg2tbZm,01hw8J8L8#s98R8Tsu8Ws,8@vXa~pEp=q|dybH8=hT8_q;8}h!iA7fgha0iIcLc3f,l|kge0jh0nc3uyjTw4c)jhe5i:vll!0Jn#jPe3eLwcw4w60Nh=nOh@viw112wlwt3Derww7$k~a)mBj`7h8oc6vdw4a@sYk$pdwpnZwrwdi9wPj%i!nE45vta;vvbjh17`h4sHu)qNs9bzs-cxbEqwq@hGb?h{wW7:bj92bQr{bUs%schNs)hQr@8YbAs.w;v/w=b^90v_e$eDvn9Ki2lXl3kFb50/nrfUxgwTk9na9}iCeovkxrkDl_wwcaxojngIm;c32t1cg,nKkCjXxme$w^wfmz18h v`04jua1l2c%wdxzglgDjwm}jmnBxGnVd`17uVp5fQl!xPfB14h|xTwCvawGg!7nvenJnLnnw8xCfOxRwzg_vSwYc6vw2nvyw(7 vBrHhb8cvHaIrNaL8mrQvM8uu!tdnNnh3CvU7-hyhAdwvBq?xa1=hJv,hLx1r;x4v%us0murhYxcjrfBj1ivk/fk06xV9Hl-xhf!xjx/f4wLlsgex^i8yawqwUyXnFxwyzm~fBi=x-iHevnJexxNe{x_nwmNybmry+4cc3i6y?wRy^xsw20JwVh~eWx,zcwhf4jbm#xiihl*96wNiky804z1wwwvy_kclHfXztftzBi/w9zEiozp9#f%yZm)04i}j~uLz7mqz9eqd0zsh,zvxAm5xHi52tvhzjccwfwBy(kuv{jvzzzW5an-pgn:2%o26`0?0^0`04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)