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
.9875.65038.128013:Lp(40ed3; 1jEVo5_An)h]ù6,qc[yCuvài2+xms7=wlSIatf-9Rrg.TéPkb8/050k0j0Y0X0L0U0Q0n0E0U0X0Q0Q0S010Y0L0f010406050Q0I0P0P0X0%0G040V0s0U0I140s0w0n020X0P0f0m0n0$0j1e0%0D0I0j0Q050:1b1d1f1h190f041F1M051P0:1P1R1M190k0L0J0|0~10120y0L0(0y0U1)0y0Y17050@0.0U0j1!0 11011(1*1,1*0Y1=1@1:0Y0.0s0k1h1;0%1N0Y0y0|1k0Q0f0X0w120M011_1$010Z0_0j0w1s0j1:2h2j2o1{2r1@2u0P2w040c0n0,0%0s0f0s0Q0L1n1p0=2f0%0%0j0E2R1F2y0w1N0:2d2%0Y2b2a2c0k2A121,0w2t2O1:1X1Z0}1`2;0L2?0w271Y1:0f2W1N2#2%381a2i1p2|2p310%1e0U170n0o2!3c183b2z3e1{3g3i3k0M3n2j3p2#2:013u0X3j040n0l3y2$193B3s123E3G0n0h3K3A3c3C3Q3k0t3U3M3W3O3D0s3h3F3k0B3#3q3d1#3t3*3v3H0R3/3N3=3P3@3,3H0/3{3%3}3)3+3R0#433r453Y040o0i4a3;2}463^0o3m1G3o3$4b4j4d0o3x4o3z4q4i3f3 3G0o3J4w3L3:3X4B170o3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0o494/4P3?4X0M4g4^4z4`3^0M4n384V4$4,0M4v544#4c574E5a4*4Q514M5f4:5h400M4T5k4_3~4{4Z5q4 5s514(5v4W514.5A564{4@5E5c4X0l4}5I4;3^0l534p5b5O400l595S5g505V5e5Y5l5!3G0l5j5%5r4k5V5p5-5w5/5*5u5=5B5V5z5`5F5P5D5~5J5P5H625U3G0h5M665m685R4x5T6c170h5X6f5Z5x400h5$6l5(6n685,6r5.4d0h5;6w5?6y5_6B5{685}6F5 6o616J636o656N67170t6a6R6h040t6e4G6m5@6T6k6#6s6%6Y6q6*6x4,0t6v2$1O361F2`2*0k2.3C0E272G0;1Y1N350j373o3U05700=785.0-170=0Z7a6$0T3k7k6+0w0Z7h0L0Q0@0w0E0j7o5.16040g7z6C170L7E3C7B0C3U0n6g3t170p7I3(7K7M7O3P170w7S457B0x0d4h3C7m3H0n7-7!4j0Q0k17017@1w2t0J0s0L1^1@0n310P0.2W0n0P2 0L0P1c0n2T0k0+0f0~7x2F0w0Y0{0K0n0j0Z0Z2X0Y1C0%0n2N0I8u0Q1^2W0w0k2W7)3(7;3k7-0n8m0U002 1X7x0n0p8n1p2i0%7v0Y8b7~8N8C0L8Q0L8b2j0{0I1p220j0X0I8Z0n0U1o0(1C8x800n7@013#8J7N6$7g040L7j4N937p7G7V6$0s17020(0Y0m9d9b047R4N7W017B7(4U92929q0w7s7u9l5.9f040S9B7F969G3C9D0!9J4$7Q918J9q950j0`7y9p6$9s9Q9v9a6x9z0Y9N459D9F999x9P9.9e179M9;9m7H9u9R94172W8s0%7Z9^6x0.1786a23a9Y177D9X9m1X9Aad7A177La39Ha8799=049@a9ae7t9)ah5?7$7M9$5?0E0o17038Z8f0X8h2t8k8b0L2W2Y0n0s8=8V8@1D8n0O2+0+860Y0+1E4U065545957i7/2p7+7Naw3X7r042+7}0%0u8O8%1Da.1{7Bacas9%a^0X0.b0127$9t5Na/8I7.a=8G7=048 7_0w7{7}8@0X8@au1^0=0{a}7x0{bv800s822Wbz8=8/8;0n1=8F458H7,7-a_0+0n1b1Y2j8Y8M3*8D1^0E2L7t0QbV8Z0{8183aV0kbGb71@bI1=8~7@9!aA3X7Y9*4j9,b~3fa5042Db99rabc69yb6b8bh7#170xb`9qaCaEaQ3dbC8i8QaT1`0s0Ea`aUb+bCb-8laU8xbw8$by8*0w0{bK9{7.6$ca1=a|8Cc11{c0al7J170Fb3ao9mcIb4axcVc99ccd4j7B0zak38b{9O9Ic*2paycT3(950Z3*cQ7Xc=c/9q0s7+2 c~3Dc30%2j0(9Wc#cU7Cc(04an3z9q7$0zch6$cj04aF1o8n8p8r1C0n8-bJ0%8)aT0Q0+1@2Y0Lds1e7tcl8v0j1mdx141,8z8u0~850+2d71bS3*0Y0gcgcJc:a+17c|0%d6ca9`d19ed4di2$d)4sd8dadccYaidfc?7Pdhc69Lc6864Kc6bbb`9wcL7Ga7d6cSd;9_eb9|6+c{c}c_4c9:ei9Cd?d.d{0wdbe9c8e1c d:d~5?9D0Ne60Le8eBc704c.3od_3fb}eLead(9#cKem7G98es9HcN8Oez040Fdg88d5eT170ze+eLe7046V6@aa04dmepb 9g9i9ke~eRcbcO0ke)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-0L1B1yaKbqbs7ubuaVbxa d(9S9~0?8xfvf=eMfSe`cZb7f6f^eLd/fLgnflfieJ4efLd6end-f3ftegeugF3PeweyfIcXfT9mfvdkcffY4pa)gg04a-eLa:c9a@d921d90f0jgEf-c@eAg.e2c!fh7Tcffo6W1{a:9ReLbNbl1xbn7|7~1^b,84a7883F8?8daHaJ8jcz8o8q2Y8t8vaR8ug(2+0Xg+g-6b1{bN920E0y0Xg5bBbDbub:1?8:hF0CcF0{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;12fjgBgffU0Y0s0@0Uigfzf$6$inipeY04d,h,0-gH7Ggk9xgLd}iafmh^gx3(e@6!iPfef:d^f%gRe{7%fDglcafcix6+f#f;f%ijf*gt17iFf`eViee$is3Fig0Niwi,fUaf7v7xe)iOi-e)iVfwfUi(iMdej8i$eSileMic4xfqj6i3i+iWjah#5?959 gjh,irit3#gWdoaDdq0n0*1D8kbL4j951`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%0glvj@gzli6+kOlXkMl.k9ldl=lflck/lyl^khlCkkjX0zk~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~0Xg)m@htjcg^7Cm`mTm7lWnv45e@6Ik2nPmXnWmZn9lJn7nx5S0:7c776^n/0:6{1F0Y6}n@2,2(26282*b;n;6{1LkD2W0P0u0Z0X0-0j0u0y0l171x1zg50{g`6@1S3p0y0o0n0L0k12701daK0^bE170HcnowaNa br3(0y8:0=0%2=7g0n0y2W0Z1203ou8i0@oD0Q2n140Y1@120,g,1e30bW2 950a0b1F0X2%oo3p1M0eb!3F0E0I0U8?dUkA8Q1XaO0Y1^aK840=0I0OoqcDaV7b71c=n.3H0?7Npi9opi2UbE2N8C8Kg81X8p0+8B8Qpf7d2/0Soq0n0!8R1Fpo8^0%0QhBpA779`pojG8v1l0{0(d9pspNpmpIpg8n8Y8mpOgY0npD8SpGpQp$0k8+aU0|0 2f8jd9oD0)0n0Wo~o8dO8;108)dWb;aNpuauk0pcp38rhE0|oHa70n1B8)hq0Jg,8zcvaWaYa!a$8bhFb=8=bI1,dN8b001y358-p5dTaV0E0 gc8jo(0+1Xox1Dp~0q0U7 pSirdO2P1t1@oU0n0+0(hXptdU8^ex8{8ub/bJo0bI0P7|cGqa7uqcqe2Y1^p*2D0g1=0xpF8bp#7dp~q0808AjG1^8f0I0{1B008mhy7|2PdTbrri0{g+oZgb0|b.dNpbp11DhJ8w8uh986dSp@hd8gg68jpthidvg,0)1Oo@04oAovoqq18;8Y8V708xq91@cwhDbzp?hMhOb#rpb(8jhJ0_bS0I8p2QqDq71?r*brdRp5o hYcC8Pb.r/00bY840s0ArZ0nq2bWaVr%hnaNp~0,hn0n0G8v1fqo0wq9dsg+dO70cG2+0IoDg8s4gb0{r(8fpepi0gh70j0Cgdd%pRbWbra_g,06bThWrOr:84r=b%hSaVsQ0{0X2r2Sb!1o7u2Qhl2tbTs5q.btb*qdh;rTomo30ebrc|7w2Rplpgnmm^poqq0%qQsF8Y3F3*cz0QoBqJbzqbkB0{p7h5s8h;r{0Eby2P0Z0Qt31V05oooqos01r#2W0!to1l2R170v1m84tP1mdH7ZoF45oH0XoJoL2noO8ooRtM0jtO1ktX1ooY2Qo#01o%3+o*bs0wo-o/0:o;1Fo?o30r7|ctdx2?0nt.dZtQtYhJqldP0_7t7~t71odGdshWhU8ub7tWr2piuura77hK067 qL0Uo|o~hTbr1Xts8QpkdUt8ups=dz8)p*to8W0jfQporFuSg,bquCs bAh%tF3p2`3C1}1+1-1/kD2C2t2v172I0Vb#158Y0,0GdXgR76fl3979pigXgZjhg#gta@rCj4f_nynIfCnumGamh|ok4O5?g}bgjhh07^h2g1p@sQ8587890Phc8erMoUhhduhku$u!tg2tbZm,01hw8J8L8#s98R8Tsu8Ws,8@vXa~pEp=q|dybH8=hT8_q;8}h!iA7fgha0iIcLc3f,l|kge0jh0wc3uyjTw4c)jhe5i:vll!0xn#jPe3eLwcw4w60.h=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$eDvn9Ki2lXl3kFb50OnrfUxgwTk9na9}iCeovkxrkDl_wwcaxojngIm;c32t1cg,nKkCjXxme$w^wfmz18h v`04jua1l2c%wdxzglgDjwm}jmnBxGnVd`17uVp5fQl!xPfB14h|xTwCvawGg!7nvenJnLnnw8xCfOxRwzg_vSwYc6vw2nvyw(7 vBrHhb8cvHaIrNaL8mrQvM8uu!tdnNnh3CvU7-hyhAdwvBq?xa1=hJv,hLx1r;x4v%us0nurhYxcjrfBj1ivk/fk06xV9Hl-xhf!xjx/f4wLlsgex^i8yawqwUyXnFxwyzm~fBi=x-iHevnJexxNe{x_nwmNybmry+4cc3i6y?wRy^xsw20xwVh~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)