From 68f3e8d697b145f2ff4d044cc10f725f9cb9ae43 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Fri, 7 Jun 2024 16:18:48 +0200 Subject: [PATCH] Incoming --- a.out | Bin 274623 -> 347712 bytes graphs.cmi | Bin 7975 -> 7975 bytes graphs.cmo | Bin 85321 -> 85776 bytes graphs.ml | 11 +++++++++-- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/a.out b/a.out index 9c51601014de8ea033f5571b3cc9d2de57a862ea..fd7bfd40d4001e9542b99a2cbe5e83c8c9831e5b 100755 GIT binary patch delta 70507 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 a#5q_wxwdzjShi$w@t84V&MG>t=>Gw%$K8(r delta 15097 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 TI&*E-8B5L-5ARTad3@4;OTEg= delta 574 zcmYMuPe{{Y9LI4#KYx#9Q|Gj8x<+7SQH*l^L3YR%CF@qFqzGaV?XrRvjv(leq(uoE zpQuaWG<9udxqdCPX3bLizYUTZlwKq#6sbVE81(#h+2zZ_o6ifLXiKyu)P&x!)1&m| zc%jS^4z=P=IDZQL+>aCn2&GjF=F;PC8cQwoDjq}`Q!=>AbER{L@tB%LTyu!cz&#!= z`;GfNu;M3%xP9e39%yUJYk-Gzu3Ew{HyPTI;BCWsJYs#tS!nF8=)hx|D&t5pRoRax z^j39Xgx{;YcuJ444Wn9*u?cv_Ty-a&v(0n~DbAR#V~l~C3A|u)?M=L7wssI{23JQg zPOG^YuXxaW3$M9gzJdt`EuEO;KT9{4E#;*32HtQ>-2mQdxjF&7W4?ZmHLH}AOnpuZ zwF~01{w{=RI&AClo`-Bl8k4eq-KQUqob^Ez!%?@pSEvbKBQrKTK5*W4X4|Bke)H=m zAoppAV(2RDvw*`L8IG*;1)zT9)io|>Ue0G0^z%!aDTreDQ!sPD4&7`x+3xp2{lq1y zrX`rwKRtU*svi)=5Gts@z|MjScuz}};c>gG@rw?I^plWk8KM}Hx)KIp7su=k)q8_I Wi}8y-|A~gJ=G`N)q_${xDgOaP3e21U diff --git a/graphs.cmo b/graphs.cmo index b67e6f3bff89eadae386e08c7463e431cddd56ad..706731595391854ec5b89c2f87a2d4e22175f9c1 100644 GIT binary patch delta 14468 zcmZvj4_K8|*7na0=i%=G4vLD3MTUin2!@RrDJUftV^}y*nnFT?qLQFtk;lr)8tVnI zfhnh*DZx)?VvgYp=bZ z{TvSX+C5&=ecphn<%?^w&pGFui?hzk@*%jn#OL#^d1}BvB3kxE23zJt^kr)7 zhxKnc+LqK3T;XqNj0(2ooEFq|(>z{hw06fMsbxo00s6HddMx5wvhB5BOS!l?da8}S zE%st28=oITpZg;Qc_S=M{L{@bLr-AYwkM+TIFQzQc`Q!#@?SV{V*cIP=)bKg7OB9b z)~5ovC~=#aqb+E(eevJ8ZEdra%&iO3t6MZU7jzZl*fL|xBsML$d*cnuAAcKKJq zTSwIO1FdEKaOuE@X?U^Ae+Rs~h`K)3`dUBJ{K^dP4Da$k4)1?Brt9?9Q~P7+715*4 zUs7MWEVaI>GPR;|NnLgQ%G9M->v91rPfgECU6q=hl{Io=YG;@KIe5)fJDV>vy8O?d zeBF?jhlu0t?alt}i0Es5vp+_M_QP9G-|P9ZrOW^R$=BQSEg~|=h$Vy|%ihCUtpTW$O4WGu72smRDFohv99Y^w;+CZm`S$ z*~!=A@@AQS1$7T0vPQb&&tJA|>9W*`rg4(IDSZX6jUu*GzISW7{9m7ZeIpBPr_gak zZf;%GA8BJf0Ny?HzJ)Kp>GBYEvf(+#Y_}K>K16o0AESQeVK}^d>A!<7$1LddlMTIU zNjEb+i^v1~{v0BYw2n!_MVTJ5;k8@bzL|Wfw%~Cm8#*mxRH`y&A*%IHTmTQ3z`LLB zPxIxV#aw!_;WH+T%4MQY5mmtNhY?kxUX4o49-o!fV5^_iX>sN79;8OEy}TD;hO16C z1gXPbuTR&Wuby9rsG5+3ez*%LvJ~DX#wYP5-3+xS8!{=<$RgqqwT7`RX<3=$#v{6n z#zBZ?L;XV#qunwLG3$7pikQCt|LV5x9)Rf3o$xsO_n+s>8NzdGnXnEM11!29BSD*n|9@i&)$EE&dn;e7v55 zfNi%H54R$)u02G$9f1vW8Hm6}4gC)SU4r!p>|#&};)-QxL%d&bFX97&`w(w+wfILP zzKE{#5#Pq^Y{Yl)x*GA@<@f~RS%`;D#9K=Yo<>3_O7tueTv5*MW^iEf73~p+y>6h@l&0c@jh2 zY@f$ao2&`eA;lH94WX1QIsE}C6ExO{ly$OnA!V~*H&QIUh24UbeX_iUl;eW8k4Cu&}@5RG0oUoZ2R* z4y3vgk0R9#eTh`3_%*Dx6xxo{@}$#;)7A=3;54NV55sAe)qHkhcn*icqcGf}3}P{S zvmL@l@ff~UPJ3{Ai7ZJt-8l`y>1spx5S;FO4j|1sY*DF5>kyodG#fI@8A$7r&LNB_ zlO+QqoX%K`a602K!s#5x8AaUx9{!Cpa}@S1&MX#uhcjywpO17kCcFUYntk{*q+4Tj zx}@)G1|4^W{g%H zVL^=6vW696^g;6p@st_eE9n`?@GERRGV%m>Bco8zhKv%yy~uFM?n6emEcYX$hY*&D zF#+jZjWI>CRM#Esy8FcRec0m9a8)PSz86ikkuvl3fV4MFR~RL{vTwk`mnXgUZWDbkiCb_ zVRs?>pe(N<+p2Hz{4pVn%M!(5+yp@ola*#+$0U1hTK$H zE=O*Y;(vqOPC+|zx65Y?a=Yx!-u-#@?l7NUc{s1zMn>sPTIDs%%WH7n5xGvnBqj)X z;VUpHD4FLmsYLJsCbBWYhhrD&L7bOx{SDa}b)mRXQs$dAD?)#AGS^k0CEbf?pvoP0)+HtRHnaL+a$M zrOqr^O7?F(@~jh9&g;nANsAYc{3t;p@- zegS9fe+30pV-W==XVpwZL6Krsg;3z?x)B8%WLkrQb~#;uf`bZ6Lcvj4ig5mF!NoYg zNkhYMzAa?)`m|X~svB@YnH28Dv{b=;n5M+u{g{>`%O*_QBX|VU_7OtfW0=+>(-SC6 z7IdP}#qU6&i+>h{#Tt4Jh1Lh_nGID4Uc!aBg5TppE8K=&!G+Fw7cM*^%Nw}xxZq7( z*eBSFi(EmWZd~NzdvKA9-;axGyPO4q!0%*~MHLCnn&JdC-y?c=$wk7BM1>%d$WwjFa_jxCtGRo>5F?hb(s z?a~J(mwOT4z*}uUx4+fEmu+2M#J49KUf|~!Wo^7;BkqLFnb3r?PTj*LD7WS{uOIv4 z&m)E9byf9O)u6nz_45%J7}{i`{%Dl<@p}MQ*<5wFZ1Exo+s74=LlM5s^4{?azLc6F z(W%R&6#=_mh-2t zc?&A*QOO4T{irss$P6Dc99quDvdBUsd@s4~jS9mmE}`hll}_J zT>4%tv#gfvc`UQWSckqxokg{HQ9zy5Vc*jdIQop<%Nq z2MwKqpP^xgoW8-z4YHhvm3stvSh-Iy6)O+YC(^@pTVw|(KT%Rns7}uxCClS~8 z$ubL#1%gsEs`*i~5o)xinb0uY;L0z@4K8a1Zg4d&zztTS`HaM>)rwz?Rl5bXSk*14 z!>S(nj7P{#W2N0^t6fQrL|0UZ=*r3`_UVxj#SgA;%$3qwqAT;4#A3<*-0&vtw@7|2 zev>PRC&A4sJMuK*1o>W0+$5YsRH>1phzDf7%5Y7gvOUa#*0@HM*z3W@Pk-CNs)FA&@58p#Z|?i1cbJVXc0;@0E3|06l& z+oBY=o0u;AGcilfoW^Z#a{ML3ZG}>6CA!S-6J6#HiI&-NEFx}}*g>KdVLSFHu}2Cv zp~B|JgYibsbLQ)rE5 z)9xr0MiI+Q*FVo_U4X_=bUe9G4v9qRM)PC&b#r7LL~IfcA=*6c_cKO!WyqLHTqiu8 zsB)vvAgT}1T&%ln>8+X!;z0`BY}C|b4?eSwBRhxjL~}6f1maQQxrWVY!bwC+-0Z*G zXnmKA1%@p-!fC`@;e|vuGw$COYpKa{|F&4U&HhJ>LU&J)mCyCNt-a>J{d>2YFBksq zjk2<3ckdB$|K4qjX}^*&YORs6is;6ve|r zBnfXIrU<$0_n5DVv1Rwn5#CCypuz`6_x6%{j5g-z-BQSl{u9E_!KxDoo!{j}zxm_E zMfrJobStp{FS?v)f`%1DHxvGbWMhZYJWJdv= zbcm`YZsgl3FKV-KyX)K$Vxc6yAQsEHk!Zr^yOmfa+-7)xj(q<^be;H~s7}Oy*hPmJ zKk>LQlGrDO*TO3G+aCAVcZyAx@C>FT@>+8%R7L98A<^iQ=zqA2=dk9w-ku z;g1X-beTsOZqhVj(uwL%%xI!*3;RJkCX?JQ;cVh&seMV@CH$JWPo?c7T4pPl2g*aW z3gb?BNPUf&N^Fzw9-`^mrs09|P^XZ`@WYJ?yO^iiBR=sZW_~0}$kl%&NmxoO6wW5v zJWOpE(J~vR5?9k9>T}{cS$U*v4k~ORF-y3ZXl*s$Z;5&4Yx|#P%4R3bGv!g2c_q;; zBUk@Xw+7s>V3@9@XmB(xqtu!7gkLA)KI+q=2 z;IYzSt7u|8Ryq#RArw7@Y(+7D^ED#+YO&|ng3+? zyP(3j`oBvSzC}zEzC$b%zDEq%JS_9Q4h{_yYL);|mCd1Aw#T_CR3;#hZB}O+8 zP1wXbiM2wWP)}(MV*X9Ef~{3t{inKwq3_7M$+14eEk0p5F-j6V!?vUgcM&JhA^KOu z0$JZA?owDk;vwMx;!*kX)Y;N2-~EP9J6)boPw%#ORaSA2@m4F-@DpN%;+`Vb%X*mD zBjgFS)d@dO?34AF;WJgrd^T~d@El^3#9k$~$vT<1RXBwk`k5V+&=K`)F)``|vp!oZ zYmDKxWI1#7x8(@0AgbV){zSX&tbvyiHw)(zJEf3fxZN*n88KDJwcVbs^EZY^)b<9M ztBD(g%ZVE$kx4u%>oUXV>|V2UtB6T*_!)76tk)AugnXhrH%AV6#BSkKVjmr15_$eU z@6_%v^Zy1FcPG)!xrvyjxJ!sT<-pb7;daWeiMFCv&qkuFXD+crR<8aF&fy`VOR<@l zqIZ=sJfdFMA?GIzUv$0V>c8kp<1^<)tH%~;1=0Fy>A3nYnS>$N>m{qwu#1=_U!G7e z?U9wM-{pK?BRb#RJb$~K^IbIWlJj2-UrrakO*97+-bc)p@IAx>vVLgzdne3i&hMS@ zL88;;3H5u^wb~yw{6n$A{%N>#j$z1)JxZ>Sna`Y^wQ_#O@RdSYzag#>_7T?!PY~PW z%Mx5mnIq* zX84-w38WG=kHG0fn}_-S&G7XciH#(#7G@CF3da&R$oF4{Z)nP)z<9E&cmmN?d@j*d z{GH)$S8+b^sMHFGu690i{^X}{Y&22ZJT_qXrb>%VAZi*h9}thocYxuarB^EX z6U24$xSD90ZD%}2bd!13u-i3kDX~Njd{%VV3SS~NNTGqaTh<*!tKG!-B9knyzmNJRt^i96{W`&Z&V zsqtj_=%6HK8-DDB`K{=Sw3DZ>jGlCkdKOwHxpz3P3)8}PnOUp_424Q z{>04I6+SCI*)Cj3R6T(R;&H`IGCZg$1$bH6pGtm{5QWmT8RN-AdQ$L=Q+eZa%eaFG)wp(af0w+Vu8ZWBGxNx5wT0wbBNut zUPJ6r*fWNI52c8=lhcI%OSBv|r5lKivc62*DBMZhL=4O%cF6a3!$Y-l;Irb;4&ff+ zPT^ZbO(Rfdc-W_~5Ra(Cc~ax4bJ#j)neQW(DehyU%gkrRVP%dxMC_C=PpHF3<@>qe zXF=h=h{@7jMNE}1kFd`U$l+VVe-!KExw!Ahr8LL;h!u*vlej@~JfZ&4BWnxsxU6p& z9`PxR&x#{?!hS^VZ7-hBiX(1D?-JW(9ZKvHo)RMOA_pEPT7zu*Jfi+-nN8wM;z8jk zqG_0Q46#>Xd_VJfy26eTt7PpWHphrY<%OxsX{AA)Doxkx@$kvr+FOEml7b$Ws zB<2b)A{Iz^AF)WjJfV(8$$`(Dqcy_Ii1orNh^rO$ccRuS?o?u*tpDWs`!8EC%giI{ zUoLYsagHQvh+2+#K6Cz6E8lG54mm6*9uPJV)v7p;Xst5c^9+w!X6xFG#G}GBL~Ee^ zARm95@t1y@*Vog;)WmIm?Q*Ye?*+U64?)Rc?pR> zUOb+!HzvJ}%oM-LB6`;dA0b+6Z2$7?=~XH5-xK?2O@QGy6NIM_ncqv`?efhYgz=tIMpsZT_>d^{-Qq zJh6|utC%Xl8#DDTNeEvX!&HiXJ{LlNULy*;6qf)R)U)-Xwhm zq(LNh_lI8tR#g0?$xb`-{H1k2nad=5`nXJ6eP3S{RWe8oB+j6ZcZ{DM>RW5%{v^73 zN&UQ~SBHL*X*#*OHb(G{?%Pb_R_SA-{Jcf`wi~%Z>Z+Igq_FG13SkHR+}(XWB%bVj zhe!paqogxL=q2!3_nq5}rxC41=5RT& zMh<+Geb*-IJfape{wm^ea|n6yS;pTpt(Wj9kqhD_bPyYazay>|ZXtFE`LO$bt8hE9 zOUP&4_cn7Yg3r3|dxWbEPn5}FC$XIv&yIvnu)kiy>oo5W@?m$PSGXt42m6$h4)(Bv zFHQIkF;Dm&u~2w`Xwz@;TMh74$Y_r``09m!BQ^=`Q3s#(#AJj2AhQO)l>p!N*1hK= zIn+gi%^SYmTAZ}(%%9l;z}L-z{UmE-i~lv!5t7~W@Eteuf{})ZqVZEw66p<63TYdO z6XA#XK-PchV*&?y?X&?nE&tz1#iY+jrAA)R?o~j`3%hZE296<tP!qS}RXG)&W~D zTaGV@)?vf14Z|$n@Ec+yedGT~bYYj~k=rFPmAIA82_BKH@q*Kd`xM9J22VGvU^#}e$Cm_Ntd$Sj`;|1ZiQik?aMtD0_P)f8k zhO-U*ejy9>v%_QcR|9p|@UIu#83aH3?ZLJg{5jU<`}5jcKbeNqj6Snx$baco3+GiV zuQd<)a8tis8%VznpE8b4|H5o?awq8fSh$8x3L`#YM zs))7nvl|8xJ*}@4;*8VSBfmYB5Ya2QI}9Uj8kW{hUqm*x2Bu@o@W^%ayPK8`^0WI7 zk)858VHlOl@=`7Ys+6Fe4~W_=D>rbo(gn{XuCXXD!22fJ zdeiJB))~g6w7xmr{@fuZ!$z~zuB(?-)>X}0x^!N(olpoQbMI~$=l-8q=9FcX<%=%9 zx@hUrTKnsX#7zk2!EyVq^9 z4xHB&@)Dms*>Zs*Hg|EQB_|JCbx2HQIL4qR!e?f-iHWSH*+>LtKk z71t=_u1c`3tzYjY+8Ko4hP?Lnv{~B@U5K}l)Nepj)(Z*0nswf)x0WQl5_l{8v8J delta 14136 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 Q!fW>bng)NMEQkO8A0IJ-jsO4v diff --git a/graphs.ml b/graphs.ml index 8d75aea..290f40e 100644 --- a/graphs.ml +++ b/graphs.ml @@ -1252,7 +1252,7 @@ let another_type_of_dijkstra (gr : type2graph) r dx dy dt gwd ght = end; in - (* Actual BFS *) + (* Actual Dijkstra *) let pq = pq_create () in @@ -1422,6 +1422,13 @@ let main r = Stdlib.print_endline "Enter the height of the graph (use 6 for weighted): "; let ht = Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity in + Stdlib.print_endline "Enter the density of the graph (0 ~ 100): "; + let density = ref (Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity) in + if(!density < 0 || !density > 100) then begin + Stdlib.print_endline "Invalid input, will use 50 instead"; + density := 50; + end; + if ht <= 0 then failwith "Error : invalid input"; Stdlib.print_endline "Is the grap weighted ? (0/1)"; @@ -1441,7 +1448,7 @@ let main r = let offset_x = (gwd - r)/(wd-1) - 2*r in let offset_y = (ght - r)/(ht-1) - 2*r in - let type2 = generate_type2_graph wd ht r 1 60 in + let type2 = generate_type2_graph wd ht !density 1 60 in let dt = 0.25 in