From d2e58b7b5834c14d3d4ba72f1933e3d0c1b84aef Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Sun, 14 Dec 2025 18:42:37 +0800 Subject: [PATCH] Add solution and test-cases for problem 3623 --- .../3623.Count-Number-of-Trapezoids-I/1.png | Bin 0 -> 44357 bytes .../3623.Count-Number-of-Trapezoids-I/2.png | Bin 0 -> 37348 bytes .../README.md | 43 ++++++++++++------ .../Solution.go | 28 +++++++++++- .../Solution_test.go | 13 +++--- 5 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/1.png create mode 100644 leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/2.png diff --git a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/1.png b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/1.png new file mode 100644 index 0000000000000000000000000000000000000000..44c9461d8fad8f7d3081b2e95a19e63860e3bd19 GIT binary patch literal 44357 zcmeFacT`l{vOc<+)GE;gC<5))t)ikJirSQQ4}!H5^Y)$0R?HZqGTi| z1w@jFAYdR#k|ZLMnhcUdznZHXWS@J^eed4!#&~1A@%!VR>)yM2^_p|mtg7#;uSyS{ z{W}HcES`g5nBXq0?YbDoO+x=Six2)y%>}+Q@c#&xb$6;`v4u<8FpPxl+P>|eol%D` z|AW5|Q74N?tAqsd^?C?G8?8r9mgVb4-5q>qL-UiA04|PU%*Q#cw9gf=` z%Iq)*8ytB%5oLJD_WSVg@Ee8UX13EVcip zB-}zEDViA6?U4RRcytnQsIqy!)N)`FdnQy-E&fX0XDBW4|6}T<9e@!m%gE0L?bup#C7w; zS_0$wA__5yJc|w+ISc!`o-Ai=V^j8P5#!~{mmN=te0)BG!?BG~jozM~r|Qq0IkW0x zqkfSyv)9ed&6m~h-}L#hx$`Y;X3Nrn#+}3@)o(}pe=VgwzoZgc$SNdn7j|r4ikTjK zarexz#zXvf$g0?emyB}w@NjFuVIqOyv4|v`Wd9^ph>LWB_C@xHCiXstSZyF&mQ0Cg zyv$#bqkh=mt*kNF<(Op0V}tdc=QrDm_vt)yi)c4lDgRO9`}Oj~3bV%hXJ+{oahIP9 zCx~Fn`7jN9J$t`k_TdE@*bQZY-eqKxrrq@)OYN{(lI~?*Vv=P{5~kiDraQdop-M`2 zNUVzu<^8%@TqMmka~sPSTQjfkBrf0EPkh>q1Pb2u7fI7XNi#+*AKtI{J6LOwR9d(F0r@BzY(pL++AX z^&I$}^%xi3B;BEL2j>7<1B{5Ugq&Hj?{8+=CFSzNp@_$Qw=3Be0~>_RB8OLQgV&h7 zj2Ill{(WrL|M~g<<>p(fapiLhEB~-cZCjCSQNDV!^Q6;IZHsE9O4}~&$Om`B{DuDA z;e_Ze)u*mRhdaSTavpD#u3KdOykWn}z`^9x1wLnGS_r=~y06AL4n!Fnu3kuB$YrhB z6tPgTD@-~1f}Lwx09Z1Z0J5ewG07*JRaI4uT2~V!Ow#=ePoMp8Yat=QEOQsLzg|1f zx#MMCYLW9~zsmg|6Wz|4j$<|TQqNa`P0iD2Ab@H73Ve%otyB|GOqnMU>FqCsdxO94 zrB;TD$5q&sU!T92_55<-#XL#d|$3Jp5j))|fS5oMzwOoN{|zYJSGgg>g?h zZaMWotN$`7`-_`?W42NL@rtSy8-7!-KUh`0GOKb{YPd1K_Nlqwq6dNC zuYU0EJMHDA-XEap?w1ycUu+)AiqmxD{f@bn^}>d!@liZi6L^HP`Xhc3mUSmM3|J(8 zUYB-?m2TH-I&|NE{8UA#u-bThja{Qx0;|iPIMTGMR`XT`7LxIj3SG%(Ee zl$&mOMWmtk?j&Z7_4~7)XAFE|sdQcRzU(ID&>G!gkai`e#;Ly`f%Ue=DlNspD&_B0 z8t4f5eZDM~7|@Wa*pmLnQ`?$=w>Ue{2+QT*ar+3-* zeO#GVx?f3l6=C`r1rL>@$-L7Jg+LkILBtr5`;|_r;U;x_c%;ysCCf-CB!9jN#^wKI zt@G_inTOWE(O@L`1ybm%V=sDUl_ZjD7;e?d9p-AW_iYu1{uXv@0Z;qDa{1!xEqW1^ z3Zy#Sg3LRWnU8Fld1_+~(mKx7rGBE%eZhRV=&f;1k^Jki8$wzFWbir6VPC42;Ve3j z*hQ-1@)C@(8oTsKChW~ndW%YeZV^kQVW(=}-HxMo8N%@8934B36*I(bD1sOh-`!He z?1(O|*T`)}i9V0)&16k;IEb`$Bkc) z=lMPo2Mb($POP-m&x07kjz#Wo=g*#YtAbqH$5^qZJk_gmDZW+ z=ODbyu`}s$T8p3KE9W6Y#{K=|k6zy1=5m)By*8g_vAz_UJvM9}_h&7+l)tpf|EGpj zfJHyVUIxI$mIo=(u(HCzk1)<^)ip~W*7lfrJpNa@CFjH;uwe^!&y!g|V zD%<+2bwh85GCEk&5)z+DIckYQbQ}KzNxdOb(s=CIAkY0PP*GS9{5gd4TYYqc_)iCK zs=RKh;O>keG7YrXHrB&KtZFQi3tm}fUFYq(MwD9hMb|3J=gD86`*pUo87gYw`9RkG z-S^!53qwu8cN}_jvGb~~Kda0;^FF0@sc>MW=zRu3Yhz6BpvwaY^KHLxx6Qt2Yo|tuuKZ=*UnV=lgYR529{Hp{XFdvx zmZEm{v)sB-@ z1~Fu5*5?*CY1*59;b_(mqS}R(es({XJ9Q-2)4KXTueX)3PQQ5K5d>H*_a9;_bPEKF z@p!v{Cf`cQ9KN_OWlgQ5$}iFA_sd^?qi-)=Y@IpF&)Kz0K5t25p~_IL-`SQl(qkis zi2lr5Qhl&YhWH#|PEdli{=O~kW_QllvRDHP*+0qCy(j3bSF%4(k%qf-Y-52nt^ZW= zNsA!gE7fPMnm#@3D)FY-T$m)l%Lup<@qCX5^Vmil{pjto@AdnetxGZ8rIw$%)zMR= zd5c`~eQm$Dfpx!L+u%1^7Is=v*jedt)qlCC0n!t1qFZjB_Xf*dYOm`kF>l|w^ay^b zf4$Ens#;gH#%~cULQrfeHv`hPeTF>{u9n|?&y8<3*hT<%#F#uvDARe@+*rrH^UqR$ z5Fn!zi+^y=@}7fK&{UY)&T^!%oo~`7FF~b~;C%OG^gtHHQ*+c14!`y}d_7*?%`A-kOUJS&3tivVAJB z7>UuF%E%-c;_J3UcE^5$rgNULjwa|0U`gQB6^?b)UVk_vziSYUrj-z|obbQc+1K+f zxRqn*x@ITTb;PQ zTLac%dPDR?Hu`CZn9SkY>kC)dorp>qJyy4yB+_cM5IfC=NVuDA5`gSJnOf}EU zRTMyXqKwxYvV02KC% z&_4q7h@@)4KhEwyiMDDRoB_UYT?uVwFA9!d34z@6xG@A!W~>}Gy%nVw-z;L^9%9VH9HCKk z?Zm^C(~ebAgiMmhO#XMv#((^Dw0{|YPnq|O<<3|L$!?ZZvPoN<@(U{`CIUQUEh37d zSa`)!s?*HeJd$^(q`yHt$IgQbxv5SZp8(-^{SCM*G-W_qHnr~`E=sxAx{5 zm7Ch#cRSnOmMqKDcCwrl78X`wwWxi5yuN61fpj0`8Id^xKi-m=&|GdG za7SCpqF?9gWO=VrJ43m{7o7BghnnD`cVk4#3ei{9cDmkdgM9jgz(!9bbbXa?Sn-f* z9Re~2C|BD($g0UEu1QW_j~u(?rp)r&uDu9K-bV)K?@S#pBrj*@83*q&0CQ=-$jaIl z?74cg0JxFiMLH7eX9CneRuXdD_i@^$>u%s8M!Amsu~Eoqj=O6a{sZ%XBPk)wo}V6H ze*9`wS-%L!>0qQ${uAgLml7h3&h4$4kHa)q=_$zjWadXPt;|*oVCP-@vLkmh?UUj1 zidU^m-rfQxP77D1!TqHP(8Xnz!u2pp`Vl^bi`(eGzF_!j(D91>RYnWHBMkY7{M2LF zXchO;;?oF#-ny{G?2^!|A*(< z^Dv&QLvuLH0a^%JgJk|w!X^yg3$!_hmcu;;tF2cJQuO11@o$UlhuhAtJ{*1I#IK&F zo4c+~>Z#G-M`XgpHznsn5;%2^KA+Ps3{4%*jI;+lcpH7eqXj1<(49i}HiBb5JXo&+ zBULB@zk=`cv(BtRzR)7;KwcR4Oo9WE0yvb~E^NZK3=S-Z)E4d{8^2@sX83n@x-AlX ziwCSHZZQUMV>+^#WG;}>eEm#G0Fees(vgjj&>{z?HG8fyPf^&{A3p*PXg-wS!@xE# zB^;xjOX`i_z!x~C3rp1@Ipn~M={PgPMtlw8-|$AY0~!JL3O3m)izz0F2RqobK<*$h z8kO+G0e2A`6E$f96D5b>Cdv*mIe2cpgz5xFi+p1ny%;?0*OT%Q10rg<-VfnZQ>O}^ zQE!eE`*KX5Y5;d>sctyGW2Gx%g4BZ`$(WUF5)n7f#$k}*u<01wmvI6cmUD`)j9+zN z7zh%cqUBY~-u6Wq5f{*^-wVS!{(-JE7tUtK7-85W<>02m7_r*xA7qcrb=gAmlwQ-V zh5cvC#6)aJ=6t%Dq*+sU45y>i+tsKzJCZMZ1b>!;G#6~%vcy>ud>jV=F))kYprAZ? zw~FvIGUKBEzAf}cLQ+yP&MH}Aa0w*glX>sn(LY>xk*AXm*j4Gkw+SmWj+eNA}Yf2Nv2V=KJv{<`hrthJkQmvQ!AIoj=)R-`Zbg{gkWYIErhk z;GfEAaOkV#u}i8?Ymn=E|cl~KTJf*}0W&($DEP(BfBt?QR&4us} zxwVKzquz8f0ghFtodJ9s7hODX$2YktzoCtIt@np755$x~;Fve{hlJ2?yRMep1F`MS(L8LBYF{Ltr@=X(~~{JuzHBb{JTL zV$k$$zhMv$pt%)g3;%f0sf0O;CZp_m{;@&)rPGwooe{`sAnKD%Sp3QSfc2Y7fFNaH zhoPz4gXf=+8*{w-$ESqp(0zgb@Qm2POWAKLr9N&Bi949h{ZV_ZiD6`fkg1g# zxz~``M!#Vw!b9=I(=?~my`pRTC{KwND0>(Y#;>qCF~ryg`GviwDTc!#QYdeTee-0w zqxUx5A`RGak3eh%nt<9udA$ z>Niuf{wp}a9sFPHJ3USQhOV2At;@~%rdR%6_Q*sK_Y~DGhHb60pVjM+2%#A?Ir-aq z*PW%++u5!ngnQnVZQxRL)p61*#~?nR+e|9l3#fu-HB226Oh^jQh2z2GpAx7I_Z^(9 zvgV}yG`-iM!naFB7!P82dVGQj`6!N!AjW}Lc%c7wI)@Ljf(-@osOgh=DWr)ANC7y& zGn$Yav!t#Q>8%F!5fc8RxCL{O0HkOTcjHlQMi!5Uv}vEK`wy@1TkJhbEBrQ-$z-EC ztIZu-6%`*%cwf6lxZSYZJMfO$h7I?wwgd(Seyy)FB@Xn?H-5&-&dx4mjTH4YeNIsO z;HF&Me9d99WLxJ*ceMR~$ULEzFw1Y=JE$GFMo*<9QxxLVl8Wf!gjvZ_XRK9p>K%ga z6v-YrA!{7m;n{m z+keIaCoh1bF8sdWr-fhEj30X5xJTW4FC&i>(X!Ol|24`sMbx+>+8H>2VrN-X84QsP zd@u7KE)3~ zDh;8`8?5>p?>0{UqJ7j390v-@``Okcb$gc~_A_tz3N8}}kutGgWxe29 zN95tK8&KvkGks6#+l4Pw#D!@{a3>`g-z( zp4tPoHe}=qy9O8QJ2g8XWH;@Dq2$Ki3?8^OVd;H>oK&2>hG_R~OHeWf+r>c(kl*_0 zP7w~cZ^THgltO`G!qX?>Om(PX*%WLGg0S%YdJ^s73oGRaX|_0)+@{O5QApPlQ|2UtGgqvoy(e&82=`ZbE_)Zqq$+_Bq4(mk zgX#j3B34(ox&0;si2@6j6j`Q>$c|?Y4O1mAeN}d1d0hylm%17NYrva8bb{EWMEZ4Y zgK!z?j*vw^!YbgMZEy}73=$GWS6~3pmpuY|Ft`PMI>uO7mm9MY$1i-8y`QX&l0%Jp zBJ!s0K|61<$wmIdUIy!ZjNIt)qBr!0PU4(8humq3**p`#u+v1yo_Ph@ZU6GKad8Lw@=g2lj`D#ZUGQB16Jbb{&Lg$8U7znJ*Oid_RFSa zY0gy9Hv(#z-iQE3U}N98`2aPt%czW*H?=5ip4xUTJpMtJ$c}%=M)7cpxqlQ0=l3sz z$|$^{*!@%8@>)!ATBtJc?hhgL|2eTxd)q4HxWu3KHT6%K|@1Cpg%X0Ie# z$e`F-05(KL&~VBP�+JiE;px*lV9C>lgpzWe5U@)gqJ1&v~77vVe!*;DaCnsDt;V z_4mFEsLRJQ8J-shdNolllMvFnDZR0=u`51X=(3oR-H8*rhF7Z0x_-C_ud6Mz#=w1G z?vtOwQhT_-(E#Jbqz2rnKk8QIifQQ(^lg{T6U1f{7}`!h=XdS1cF=od1-0aSvgCSN z@9hLuef=FODs=W2Dy<(I>P)WxUT0If&+3`wYni>;c-ZWj(wE4$(s9lOccZ#Ts$DJV z2xrP}3GDSB|FtqrsXJX^Ph__fVVwj=%2itbJwnx%S0lBcF+(BHCa=7nA|l z>{UmwXU@u3&3u9OItqKcx;S0}7irk4Po*>jHi^Dw`J|+6ZG&ImgRoPJZ1b18y|KR9 zZeWuG1dS-$Sgwt_m`uM>|K0k`v&3vm=`v%a^s zhCAjdeQ!{9Uvl+#NmrSkcBju(T3U;8%hsyQiGuoZuQ8^6=CLO)P=1vCP#ZZJ8Seat zn#II=W`qx4vH09SZ_FNEu22z?HQ&UJJ>59= zYo*##s_J-4V(I?Re*9=3;6;Km2Y}O(;mT*J^bm&v`K>OAv07vOHjKQ^_Ukgb_-@?} zU5mbMrZR~(Hjsbx@poon`mYMVk;}i0RX_NSf9**&sMweLtslc89B)>33)2%be}ws^ z!VjMD8L8|Wt>;QXWmrS?`Ww8+0%u|O7Sp4zwib02_-7OvrdeoI20yOw`yE8Et=*q?#__b<= zZM7A@-RL~r;8q8vItBaB768Gny_3zj(`3lj;>1>YG^U zN3`rKZC18Xx)U^vxtCO-TWs(Eem_MX>&+DYX$&T%9(7mVU(@`|s@4{Y3bemxpDP+wT}BIzQ`o9wx@xsIdlI zb{L^lE-s9oLa-S*Y<)8KZpiD|z0DvhXm?65+X5_V}w!v}tz@ zH+tLpkJYxUV2!jJvr-+~_82eb2mvsX3?aYgP*feUC{zB(vMRbt5YFfj_6w@e7j{Zg%YJp!hULc%;>K&@J~`pEH-Vzd#ju?i)2`*M zoP6cE_m!-INP$3lTb!+JoQhqgW~O)Qx^=hIx;qkzq>`TySQZCZRrW2uvh12ixxTUQ z)s~5&`pn<9$=|kJ9nV=`=*&9TGMRD*!~?xmGOY4A+QW&~AA*}}<(_g)5@#9rTo*gV zs!^MNsWYiE6-u}zBhsrn26~Hb4Xd$wGnalHk(_(GcC`YZz0Px@S#v_iYfj1J{(7eJ znPrn7GOMfWCf|jcJ)Tvgz=l30}Dxy8Q zrd2}3o<0c->es>D3S0K3$HiE~8oJnJK2#K!cB;yM5#!4{W7SDQa!W;%pQOy#j*~;n z{0K6RnwMYW{C;1=+&%$!H}9)Mb(JIfU86-mKisa{oH?>@2rh2QB}D|m$`&R$tl z;|{z2_ib0{g1+Kg^#_8AIRO zAs{^7HQbYY3d+g$R<~tehd=Z{-iVtX2zmA1*_3f>dPo1@p55)u{DV%{m8{MtWb$sf z(tl(ygYSy;s)>oUS4cF+e%AN6iL$!k&-IVUmP(dsPsf^-gx4l%KlC~ocN=6S=1HGb z5o|eWe8%^|(U+#KV^G$=KcQXE+nc;!W$>kUjIS&FDi=VAJ@At+C&z4Ac^S^X%(F&E zp6ru)m~q|q8L#*3?_r;AViZTLxN|&lD@#gM`No40r=EvJSKPV=Zfr<9SgkmiItz=i zIcDCCkfZ7vhq~(n+0v86oggN;|FIurEk&K+>{Jvk6sZi^tn_!fgxCMkFNg4vChfdO z@`q}RXmhXdIyCL^>+(xzS9EnaX6vHJZ$c&PcY3_7M|-kmG9dBj#r(f)f4&Ms?q?Ym z(j~yx73X&bqMi&FV{>|gVAmIgB7rZh9tGny(QgN0tQU4684vPxf6>>{K5yn9=$&m) zWSh6{YNTWHe(yE46{g(Sa$h0$qQ`N@{rp1%=T;a|O4|De1I^!@96UEERy>BN&jn_C ze`JCxR%5(DXn|i@}x;-+~g-io01)_&$!S}01(;JaA4J$YZ6Y(uLgBt>r$u{ z75$rOIhGr(YgMkcbk-&Kr+O)wczfvkCl3%PUkME5;cq`*K6}%v#>%pM`O&|wm~gwU zxc`d9ctz&Zk(jq~#tWo@rCN@!PbBzYI~mpeU_DwE*w>h`i@#Kr(!3^ZH$J-+xa_9S zgSy(61V$p^*9{HZ%PZ3_Y~E@3Eo~j}puaq}bA$hz^DbzOs^+Epz{%huvj^DnxUq{} z21A#ZwRmBqbl0ffWJVKJ4P#@t13U0!0ZCU8F$`3Olq?pG*9T2@WA`d2wp{Y}#YBv_ zpUb+28oSgAQpi0Gjlpg<6rb3wY-q=>3xOh5bS?Qp1f~_&<>t>#CbiXamB+k0*C_fX zsEbHF@lvXkApd?oED|btrdjgGtZYa?B@4bsI7E-YFsc*Aa#9rM^cWrUQy+(~V7kYJ z5#XCUMKx-(ITq7wg?nRX2wQkD872+wQYp6J>jXx*H2@sqCA5oxuGenS{486|r6U-` zPGR&g26`kHeHC_!nIP>;b(aD-RJutUY678bCX@Ym5zH=@TT5$*8-j@s52N^>ug-b0 zm(Z*tx{WVkz!js8rwEaj!n^ZeXC)}9XkULiU{J?!$KAJ#=#t@I^8)@mC6|!pV9V#SpMr^;!y@o4 z{SR-4X;rZwMgHj z|A?QEAd1)w9xP-xd%yV@jQ_mYr;V6y(ijqG9>#RT;13HbaXuKiB24S$4{_Pe_zN^| zVgDMYbsw8o{hv4GvN(l_Z(a@;g$al9AI>d*2_J*ZKHoX`ZvV&6@iJ2J&qeT)ME~=y zY}iQ%v0^V5W4!urK1U?v1mVl2VmXoQ<@Rgt+?gkP>pE!2&p-L!^S=kZoI85z5>B<# zcl6iY+tI)0W7WdP#(tL0Kfb*<*_NC*RhE9tv6k55NmkWP z(r@jqDV^_aeo?rM?|qr8N(zR_`0Cc#l1dVD4a$2w_h;$>3$>y!WK@|g$}>^p&gb2% z+*+7eH~wid2kC7{n>dzFqQL zww!rzpy}q;iQlD26whY+iv}w3N>`B@IlO>X=%e4V?cuO!5zXd~^RM&)+vQ7^rY>t} z9w4QrwcZi=seRmj{Z>|;Rc2&g$Ig|)CE4E{5F34Vxle^%l(=6>MA6Ly_zQNmwjeR|cTd+DI#SGj6uds@jr+x zOJ600s?2ezJ-Se%LUkCemkkTo*k{PXv)5x^PqCkkg|xAsZ9`#>2o}+!{Rv6Ep;Aad zgkA-LK<$Y#a@q73BDvhn;F~fPpf1S2i|FSA-yQJ003N^SqY9=gcQ=C)jUI}Gky;Yy z?j1pTx1E37uR$Vj!04Pe9DQ~xePbQ|@~bgZ^aqZ&eh(=gUY%tVy1M7>G%rcZVtGO& zOSU%_qbH)Z{-+ql9bO~p_`4d7&48G0>1V-o#hd+J#Y=-%kV3Af=Fz=5e zgpdOK<2Kxk*J)ttFQuSratC=<8@5B=VSq($J1B{htkKxl)BiaB|2|G@VrSEEKc+y~ zUh;ptD?IoMK!(gk+6UKT%Gsi}3_Q<3#5gQi!tZYFPX2c<3HeDw>n`}G{;D|IPlY7s z-0y>)&o|%mQnSg?3BK6Jw|;bKdT8c?-n>^bQs1t=i$HsUFK##DXa3FN&SRI5Z>(V6 z9qZ`0Q)?ck`2xeLbm*JOC0kwccqnyPh!-+Te9civF7;14Ui9&5BDQ2c{rH7!m#%S% zip1{|Jp^=BTe7@{tefA`3M3OQiC|}s&CW&*FJxh`0Js8wGL@5DB8Omi8x}G46GJ8F ziM-PAmJo;k6e*!Hp?`d;G6uFh+|=83Irbi;9`G~V`G=w^Qr76l+{gbpq|M>vB`3V_ zjtf7bjQZhbW#ZCs>Z(UV?mr9k^@?QiQo&~IYyt{0?eb8%z%PVV)@qczJW}#Z#rCo_ z(c;+l-ZW_iUIMmDf>M~;<6w_2Tr6J6m^CFF!D|;&mIdFaoA`k$P)t6OB|6Z5XSaJL zZ=m8~Bw_hY*xP%G^i|G7Cqv}}-7*F)0L#<*X2$_J#n*3}Hp`jFA8(T{>)okY!Rjet zw7PlE^LHK?(a)2XlDYz2V2{=t`#~2N)1LJ9up87nkuee^FX@6HFqh|+UuKCRjn@ZKT_`r^}9f2 zE7bjm z1M6b_%sM=7dm2s$b1$0x;aOa0^Iz1Z*wn(N@?`X=Uf4mwS$d z)A}?}YPM#!R!|9)ywnL#$g_~%_TX=VeOwi>?hWzs8QO-s~D! zuSD$Kx&=a|kEEJ2Ml8HzDo)qWg;$t!KdG6|zD}5xCLL)Iq~x~UP>UFH+QF@Je-Hug z^eU`o^?2XGU2JdlOp;+_{Z_Z0D@TEJR+;;26j*sqcOK}jhJ!BP61XXWAZ$&qgjL{O zam(VHQUjw99+nGY`Fko~7dn6Mrgda=`gBB<5IoY>aZ@~bq%jXAHhp0!PK!GU5e|{0 zXQQ}vf2T=XE)1~u(ITGe;?{{nTQkvsw4-KoV81@CS%+yk&x*ZUyPY40J~dp7AY&CG zrCAmG{q>b%p>v$EioUT3bPBTT$6WtXraHmx3;=Yn_M(qSh({rw?KEM30 z&hiL;E;W7X(C*zep&UZPRc?s%? z0&W;d6hXPUE+A>g>w=o$H{jljVGT=vi+iqQmxs@k6Cw~o1{Z-X4}lK@8GyOZJ$6IT zWy(kVi{xGw;{YormzFQQ4#c{0$@HIo7LACLi&AAl$q^C@7rdmMh;h&w+YaPgp{R`( z8GY-W!sX5Qox@Nn{jWlE>QsJAW&c`RuuwjVP_8oGUS4L|0s;a@1oRyQsN;9<-tABl z78HCq*(ItJ4sBG`UU%%M zrPGI|$L1Q6Z)_sU8PKLB?W~rUX;DtLZHlCpHjnju;IBP#d$X`A@le0o7RryCttYHi zo)hUjr**SVBcxM~dx5=cbq4G??M-CtQkI}_YQOanh0ksKkG{4%d;g%=JIq}ai}GVx z^)%cU#$+;h#@-93@J3bJ`zDF~L-sR&kM30|w)#E(h{n|XtqPJsb`FL_PZ|EIYXtvqcRFQZQ2@9ZE7?k9^b{r69 zK{#DC(NiDDTzFwkLMV4oC*{yq)?v82P67Axpv%Yf#aWfSrED~|6G0Dw+}o%VW)2&T zsn8D*u+Qod=bb(y--8Rez^BBJkwu_;JZ+yxcq!5BJ5C@S@|y_1$I|@Ur1C_u2AQ<4 zx$@UHwC#H9$6JvDI(tk21czu{X8iFha4)LMhrSLHydb2bw3*qSgDcC2YEMjkg%IL_ zU#>D0kirrfwPZlx#psXMTE*0DO|u zA+(m8w2z%A3en3tX*oZ*;fhRm)j&&8Fw%zOJv9+>QEL)0_#HGCpk*oYkMIMp@cRsT z1VV(s>@kImE@~(BqK2eH(At12e6n!8(oHU{`?%+gm;?L>a;B)W79#?BnhUt$ULX^qW%Ara9 z-}sj!Jb%y{pgi|1$YTGrh)?Nua7i!cAmH~kaliP9jWqw;)edsaz-u;BejQrz7hW@O zw!$MbTWgGTT1AqYNWX!YP)CB60lrHz+@uQl1MW)I&Y=|Ei8-RJf*06uKke3!%|LCb z(i|6t+8K7E=MzMv)V;IpI4^HM1GIU7X{#dqGo=guUdFG6^iH^T;~~3utb?7ei(sc# z&=ae`5rcp%)kVKn&vG1pdruSG2S;kSNc z6%&gM=j>41UU}w1OKraWvZL;Z@)jzmIt}#ZEyzSa0ixc49jJVyt-?ZrCp_W6N|-%+ zv8`8zyN((;A-;UsP*ubM@5A8H@{e4h5wA#}`K{a{s5&ri%gtB;_m1uEVXqREQ5feU zDc_KC>E%e5!?>mxt9|Wt!qOs`2NCn!{aiQOrjRua;s$vsyZ4zlc|lPL3+apSeY=cZ z`1Lv9(_m*sVY&@y>thAQjFQLYdpI`tG!edNwldUB7_) zq-ea=l=1q+CZG12-ao{@Eaz+Fr6iI&E>jS=6I_IqaMRURM!FRj0m3^vodEm?!=ed> zr%B^Y1YiR(|4%H-GZ3zGh#=`!{lt@qZx)iMv&Ig=JUePyU3|;8Z=;VI>8%;1KZlns zYj++#qxCy`=g&s%iSa0JXFI!ZBWkRpZ=LK1!-m6Kt_>fPg#MrY`pyD~k@IllmFtEVN1CcwjzDeR8)i1@=XMWvJTJ#45)8%Td99z~7s_vHXg(8l@{+D*tD#3y;+1@z)=UP8GX zl;?<0UN)e-aXof_D00yoxS6~tk(?s_KqQL=5gyg}U-#H^A@UR!}q%z!!pBXt<4KH7e z{p>fnpmVus6G~7ov=hkRVuhyAAU_vm3_k1VeW}uuwrU4y00Y&=8A9$Q%pAL#P2Zn} z?UUVtbY^V4Rda0{v8FT&p+PklkWF9uJ}S+p%7vZPy$o;^lmmOk%6C8s7kydbyH!{; zUY|~cW;j$h-PKO5&7ciwu%VHXa8}DiSKjxU*pECzfqW!@!g4+zIS*obt#B!mue!^4v1t|81_ZarA+B! ztBDf%$nU5Y3p@kehAi#GL+ty2r@`E$tqOD@#V8j}z3UbCp|T10!1+;w9C0b?0JE&HyS@KDj_5$? zyXI4HDk~NTA@N5g1@Ll^Rt>fR6>`pBnERVyPGMFo*fw_mOu=I7l3hB8_+%&P!7c@D zChQ{E6cP*>1PvhqM!JIzeXZ^L*(*=EIYQa|P3P;Hb-#-f zI#EH654u@8sqqNm5h&3FK%)T1bSt@my%>kC;)o6FolkmJez*Jld~wo`G7sn84`OL% zpC9d$T8HU2f6=agU1%RJMa}j@>V@g&RAYEe5fSh1J2o9K6+lnevp2In?|o7I73yG> zd0J)Wz4}=hDrzuc!8`mS8ki@)NKy^fy$T-Nu4)y^vlgo520$N$wNF%*eHk>A_0yucS1)*bCfHH z*I(xvY-vzXT*Z%><*l!NyLbF@kxHc`NV`%rxJWw^d|BOQg&G5^a*Cc2Y>M|2qwq>< z&Kyc4&bkAn4@zy7Uy*yxJpIsqL$!r|Xkr2yBXd`>8A&_z-}WuEMe{e}XaiAI&fJv9 zQ}1$ACms;Xy*C&^UeRe2&&It__l06HSpa#YH%iz&CGG{Z23I#C10U_uZrFWkz4OTD zx)smP|1=tW^_W27JNHOgph&}|&2JMAW~#uV;wio<00SH$0M>4Z1*?XhNwYciAjd21 z1kE6bj5hl%5yV~|jW;WF*_YE63U1{B_ zwrwvSrxK-|;^lU%OY7JGZG$Zg4WW;yF&mTIPK+A+vFN1slce)Q-zdKuHaMt(Ew|e>@SU-JPg>9FHE+QCzkepbx2oS{LKeZ>!OO+7|@8aG_RhgY-9oFQD#6w!aY;QXNSV=EqLe8sFJ8{CiARjv7Wc5N6gn z=-5t1&r=#)-M-7M(Mft+HQ~=d#YLo;bUGp)_z_q=#av9@?}-3F}2~) zW>w7e{%mTIMxFItXq1ij5ju87&9s$rFoVn3c7i%cq?|`IP`1AdlGH;{bU_mVN(3LW z?V=XNmHZZ4k$UKP`o&wK#|}7QA!lyBpUmj8pLP3Q<{=nbkkv;%gX(6j^as2Y0MuFy zNA=Bb59+teK^$Aq6yBD3GQG*GvX3X6H_XZj%UL18^m9wC{|oe7CiaqvUC4#I^RmnN z632Pau#nVEJBlZlAG2>1^!fJAYZMtOm$psT=?Om~)f@zFttML~&$COJW>^jzIQlMH z)wc{v%k9JMpauR6ubrqZr1zk;qWAP2{mqk~jVCV+!K|aL5*4h;yb1$rL*^QP+GrbU zp!)Q14Kz@Nbt#uk6y{XMLbg*oz8O`qfIgZcvoNi?-J!oG#jUqC%5KeYeHLZ}Qx@jS zz_<>Sj0;p|p$Z&$x;Z2$^A?|gNH4SYsO9E&cG+H)SDIy%Cj?+_%Qk^rZ=sv*CVKeg zkKiUz5lUf?YaB6P}yD*m;FIR>)07$+(Dde#@;zXosH&DI#14bCNJqv?M55l%X=hEv!*c z!6>+mk8=781_za60=xQBNReF%{R?4!fYuS~XH7Rv=Gxu%syq{!CKQai08mcq^JSZ7 zcBgAL;DQYdmUNUI`Fb@uDs)lF3h)XxhDt=#~?J?CYjv}37y9p}F!oU*1NVb5P zmnOkn0yaZsZ-&#ox22?lEps9RaW6qAh!PDr$89Ki(?NR;;!sK#6s8)2l8wVF7wb9bs$x`*t(jGzpZ* zgzYa>{&B=c>$|~IL2XHpQjJT}ATyf1EVBCs@CuwQ884&u)U_P{8-4IBxBE|9wbO_9 zTS)5Wb${8(bU0!o)$DcW&K>>rY17@EgaQ?RCPKglZ#9D4zW+CMPQA)3RJe>k^VZjh7(BaOMt!4D z648F*fD~{+d+u#76;<8gVP)e3ed!1T@ApC&Sj|lGi{oJ91G5@MS+#^*eXv(rBzAA8 zc?}ja@b?qmy+?&L#-G#^W?6f^N$>213&pE~KM7tQZ3{!=Ro3Xoewke0AN1&4 zX}!mAHTB6Wq18~|ZBG5U^!G+-bwmt51NlxLboY0C(fH)h+7hrz7&XVa|A!YkBzbU> zX}|dZ7v(EAL);IpduUwl!2!9A=v$v2fDE#gj$v4Sn8FT25X0Vm^+-Z<6HA_|_R2uo z%E)<7bgS)_vR=J$Nyd>>>EpAi1CExtf+1re&oi5>_HpcZHC-ca%c75xp{t;X#fv0vJs2*n!~dUl+dA%5G}(wIAQ%ae89`bkj@u zyA@~icq^a3!lzrBh46ivbYA9>e#P{{szV6J`hSI?bXZ7#wPCrzqCb6pYWoZ92#hv` z0MX;@W_Bgga|LdhHWQoV3l9SwvUO%J|N`4vk(e?L`IR~IT5-7mxY~5KcrQ8 z#z#i^@@b@of_^bfOG!)}6@8&c0xCNF0hQ0xv z2b8~bv0vUt{LEe%M>2~xFXHF-O@mo>BY$7=SB0r(n_h*F#xlpb!BWNNc&G5O zYq;1~Q93YHoY6t}a0MGmWaabH!RP044Xzx+$GM=c+J^=0uWHaa?IM0=L)67=h>F7C zC$eopXL+vLW6$JI5jvA-${(EgojnL3jBG{Li77H|8Ci z#XOS>5B}Nc{de3tqVU%WaABig&^UR!-Z!c*U|-F3Qhvp{M>h%^nD@vIj{ zNa3_g8(n;xPNsx)-B~Te3uSp|Hj`1E^7?9HbdVFVF6?i8T|j?;hzVR5wl%32Fog}p zX?L#(SvWB4IkDA*DjAKm(I{ib^IVJp(;G@kN-pw?io*n(n~TK7@DVP|3LIE{w^#ar!7*gQs$g5m)HT4*2{x2|e( zT31Q;kZPqb-$0CXL|)4xhKIm@BuA=`BOe*6^1eg6Q-~Qq_ha<^S0x$+T=S=9XMCOo@!Sm~7yl8fjDHcyF zL+I92X8h!c6sEORB*|fLSz=E@Pp#3(kghzokXCceOKGpl*5Z`DC0P$`QG{B1`EAXS z2nlO7X27AL>=u{Q9zK|08&FRsJ%ZakW8R?V!d+^M<4OX-59FU(jW_l?XSM|(@n_YK zRTd)cE3ua-mmW2^2zM*z)!TJTqUt@9d+58Z7!D0D@X1ft^*6-qu|~w?IIVQsXFRMQ zY@-~-)5?(hZWd~*ZfO%kY&=S?y3qg(WjB8s8eO#N*qMrcmCI-dgGXRb>q-tp)jG;4 zw1!XUpaBtRdbsAp6KVi7mugFBqG=Ym?aoh8qkbvtkN3AJW&=}@K@1e=w-(=Aq{BWb zRMq{eoqNtEAIpERNQXTuXWuW?+{_bvFrDYwKP9~e@nrk(*gdy?q7fInGR5Oc8VVPO zt}5}lRkNNyri~o}=6KUevN$zoG0Iw0C!{b3Fr;=s1A((?@~}EyfO_;}7f^&cx0*$0 z@L1GJlsu1A=NKt)y6n21#)HN^Oqir=x>ZxfsRTdH1c#nKpT@=N01x4y5lM;0x_lbT zvhxBmv26plMHWO6p16;j=)HOMgg?b&n;~w=ASgwJoDK7rf18T&P-2S;^MCv>`E2g@ zzO)F#)TLlNZcZ!*>V~YQ9|4l0m_Sttg(3&LZ~futmlAO$Cz^$VrzRnIQ;RzUa-v<3 zkQ7|pEJ`)nKOBO#Urx}}7YmS=u$Bl@pDrZM@qR*$XA6W655eTwXz8yjPW^tdQ|PI&6H}s)Ir9i?jfEde4b1rreA_XcrHDK+C3#9uSjy zxybr+Y4^<7V)``;iH&Dr8|G82(w!BcEvxH^8Tf~Ug|||rT9+8^b@$kpu|lRwC! z(Q5}WF2nZPSlQpng=FoPx718cJ(G^+m*>Z?)e#qa>1}*7>KNYW4I1KoCB<_!cIcJo zXO1;aX>D-W30l_WzSY9`wd3{G85g_Z>uU$+wOb$5fzsst%OI zW#J3L`MaO$|2RZ~8Z*ePy=K}L=+*C-0-`)s+zJgqnzC>3EJ7)&Dfuuu5CO6sN2*im zFqBO^DE1xoCWI4yMf1l!p0c)2jaz<9y`er{^O$R6rDbh{>EC}IIiM7WCP35^j zSb#Rj&>L^{Lh~4s;?1)Q<;AT(@xGZV*i6qQHI8xVR&7~*6sH@;1y<2OkxPpBGxS?? zp+~iyo^cOMRhco+D@kZIsynYP)1OqT-!Y+5*85PB0k!ATLoPxf&VvykrTf)RI#CIc zibiNskt6>Sgd241R#A0O_1SX2p&d7{mjPT1@tLj)AASVWnNFT;H&)vcU_TLn26~QG zP6~P$jXfS7kAfj`lRZ80{mzpKP9uGwl{-+x-J3*?E}Mys&+R#ZuyHiP#-a%Zq=6xw zyv(0{pA*h*z0mgcaFIr`ezz1y031WZhYkDQk15k&Nt!|rbdHv&*2d23-d6(`y*Sz> z2ZvA=;zxv2YH?d{!7h^IPH{#UcI2iUH+=Z2_ZI-uu-r@K=n!*BE#4yk!t?YBv~sAO2Pbn0chs zvh9W2#6195XvW}K|7$u^)nXWu2ovO$5eV6=yU9ICkn~b{tYp1w*nz5rovtMI+?U{o z0dn6Xj13L3`NsSv$iNoK4xRDR&JbEi7T+_Jz0x(c=ML`;m?+6jA2x{lj#qEPQ1x~y zgLl8Hyb7qHDpY=)F~jZJYpNWA#jlpiK&LX&^4{wb=AN46v)odm`%9d!1Ho?;Ph0W7 z8bb>UF&N6u9AOTN2`gTWOuG}eF1-z5FVO0Ot=RWCUC@D5j|EOodOAM`EBSssWQtvc zzd!<;M?iYX@n>;-SHv=ejK+I5VPDsw1btY)n~QXoOMI$q%@L>GL__#d&6)BSs(-n$ zz_p#4I9D>C_vLFc$=>>HwPVeusyPQnu8m$l0$DjHKEfbR?7(87DHETI)RS&33-DS{ zmu_`$ris77p==^Z^x=dNeF~Lag9~N)PMlfDn7cTo@4Hh{-r;iz)_f39=U`hKitB1; zudns0Z%S3|gmyuEBxd+updc4r0=W?02gp$1W-6c8AUbA@?4A&LL#C~iMOKyBW)P2R zyct3saWOlgi<8}LSS|P6$arB^$(%b5lOTF!SJ!WV_BnGbaGetx?(4Bg2h$20YiNv` zpbuBi{Lw^yRVp5sVRke(=`TzM&@fwzRlu!v06BnnGv=CNy%8Y}?X#zMgrHRt=NE;S zpG&a(GCY+6dUnQKD--1i+n+vVSwUTH#?I`bwhu4f>UVuw)L9zRd(+9K45sklf8)Xr z*XS4I8t|3-m?r2Asu(F2BD#6j%teg!`iUL@m!tnzd*2<^bQZ0f02&-L0a4MB5=F&^ zI3t48U4bdX*`Q32^Sv=ER^APEu(5R$xe5^$V* zXV$v+zV+67>#gxG7bN`7@04$U``i2M4dfM2IT}v-uy<3OQp{)v{1cy>Bs@m=u0px- zhjiT$*VgCg`+SdYm!K{JBo_lDk^%;U7uIcF48ywf4)agBo^!mUQ(oX!u)GR{YQ~!> zfz$0KB@6rFX^fvTgR*Xqaq-DozAsCO8*zfyuk7}r_Vdgd-!XwfdQey$r26P*G`vhT z7yn{15FaOk`F0&C42z!re*MGO%(!HqO%6Lh^7xjGfDTN8fO0IPXdh0mF`cq1ajEpk z;LQ#w5WVoF!8aLy2CVfndEe%nzp&(Tw{y1z9{GG#lix@%unB1Y%#CPLoW{!-M_)Hrk1RxLm+P*biZ-i2G z1QpL)p-;=TKFpH_cp{>YIf6r8^OvI82|lmZqzJ$Pfst7)Py!VY905$>j+<0ZSoqe09}A!bR@T%xc~ESc=J;57=Ta%q zOo*384W?}2TTwpzN9gl7J@^isg7JLd){d_~wQPn7uZX7KzI{8ex;pD5uQaQ_)zz!z zbFKRppZ;gZ)*mgc=D|#Ou5rHJBkOYgT=!|S0yoFZv66ctKFrk46H)~G?ND07!*t|R zH{pHJYX^BFR1Oh0|X^_uE?uuCKV&zB5ij zbDrhtCKSY70yinH{N%y%a}ege`jv;*^zQy;iTAOP+aRZu7YQ_SN0i@RBiy{;gf50* zO5i&1w>e-l%dh1h>ake%><398HqBD}!rY|qkDLc10?ROeqxvVT+V_~aSrYO4C2;?B z4%*r4*Vsrv8%5vx@Y9($tk4RDbNSO#F6JM4lM6Z{EKm_*->=bhVL{&gND#0=X(i;! zfb!-)pag+!C)NpI|MUHegQ~56xuVJs0>n=mJ{ebHU(r|a0A>lIVwoz??Ei2`so<*% zi$wV{1GJ6cen)x0BR}HiW1zyUMECscCX`xOz7GB=(7F(zGQNP|}xK_QFz9OXZAfx!d%0& zfL>qfi1NjM-ZJfbBE>23WQVF*X5t)a9~t!@-J1_V#Mw*F>5@!FC6uCnwXSZ>&aOgoa-yyR<7X|c8|(Z=8_YJ zH9^pFx7#mYY^5u|$h3OCuHWP81A5IB1_Lkh8}}QxCD*_?`6e!#BS-DRS%33lvviI5 zF~IVI>(aM~iMh4xZ-p7uT*@KRsxbA@F1OA=_Xed26XJ$ zeiz;w>qAHFeDw(L5zHF8cZo`6;mH$pa8cFL8RR|hR$cU=L^-Gg7euR{a?PGGB-op? zilwMu%sEMxUK#al9RpO%@%()tp#+~t)uUdL@XxWEqf40D(-*l@hq@TVyu9#CQo_k) zr)&3zz`I>rdAkSHZ?VXi;RO7~oY`iJ(XWrmli?iwXgXb^e#3EY1+q^K$2Mn%RGwMX z-+dD`Hgeppp1QZArET+Wsh28-pt4jo!L2Bq(MIVsT_kZqiPU$JDqF_B*Wt_@8;Lfg z7p6v{5F4gXPj&Iz*&sGJ6)Qi@vwm57&MA!b>7X(SljBjbkNLJ(Zjqh&mHm*L#xBO< zW@qd=VS%MR2Apfja@ly-{&b(LK>&@ z=ES)_slJAHB&qkvaIP3-)u3k$~*0VwYvqLi}C9mDx4!Vzx#f9 zc$f1H84aq!k+D-(dRuEt^D&-7`+E)0)&rWLAdux$WCSDHBKbzYr=jDV42SO9X6W8E z5n=gTI4G#jGt>BH149)ML_Hd`otFv)dQ{j{b9Xao-L|HASB6)(w~J@qsO@x(Z(!Y{ z-k=qTV+!r^Y}B&$RLy}@%5Yi~N808Sv-@VXe7d>AiRar)Y`$wVpOyu0Tm9%uv~;MZ zpv`b#uJl~v^dV{`!T7Y2M%tLKlhN2J>$$QctozgzEZ3J=z5Z&Ui1J7dBi8!3QrqPz z6S;kI@ik5()07t7bN51U1h%r&boNNET%i(|m}E+k_MjJUM=6s%?6cY|#x#bM97#`6 z?dn&rbF#d~QJse-vXW%mMk|+=TXcgD`MO^oD|r0b?z+@~6k@!izDFB(A+_ToL3~?( zy${i|p4~G@j{j&kbUbwsiCFHoNhDKHtNkop*p>;3!EGAY=v2J>X;|k4V-=3;+8mnz z)%fB47d$Lpr>>bMt&GjXk?fCN>di_+yL-5Q%Q_WcojatJHIp8Y^jw=j7+#+>6+39y zuIv!oIstk`?W?_9>;!t(d`XmZwR&yq2rEE^oQ(8c@hu?FmHNn;Y7zZvY3b6BI6;L@ zYOt+u*>iWN=&Gz^dr@xH+FQ%;6YYtecoM-gr0Hen)LE0x!Ku!-IXlkbra{jr!z1Bs zYP_HXD*;rX=Vh_b_umztSjpP&++PFQ>vX7c_LEss&O|#mE>(NRu2#BAOKsPU;Vq~f zDH&$#mpd65=n1s<^jMQDd2L=<0jH68=4%vFn!Vk*wM#GQpQZ>AsDvE#G-t)JMljUP zi4pE&X<awjDuT3J$(`v|P0ghcda*)wz#`!HS0aoWutxeIrlg;j-<{HL|tIZsAR& zh?IM**^Vh?4cac$qXPPMMz?sbD8m=0F*@bS+DPru{)#)|Ii44kD`!g@-Bp?ja?vk- zTn@$e*yU2ZLZvoqjyDtOW^+kCo#I&oU(=tA^`RTjNWWJQE?{s?$Ig%@wc>^u1i^23 zOmv0b)(KE^#WdPUC@&piocr6R|KPquXZ=v^r%jj=NulHkUo2`F&Jt5kS+DK zCG~_?_b=|zd$_-O4^`3Xrd+4n6uc;!juna2yi3fgP&EGY%%>}Pd6%Z#kKFV7ka@JD zEI9)IO^wOIX^v`6RfpMwN#9uOsvqR5rf%DK?XbaxWH|eAH}vzyc%%nVg1qjv6{f@s z9QR4PPD_GYs{2rnE46zgEBCgX&2U7{L~rO)mFuI=2k|49qg64SUl^dmmzQ&W7J(w2 z@x;DN(kaEA)0k<$)p zX74yFURKi*bRSb<*6qh!A*@SdQSv%4<&8g<+Z4_WtSUtXJOT0Tq8gGT z(Udw6W><5IUZLle*5OVoAoWTUsp&V^x1Edr zEv3HvLMhgz-9+ze4cEDFLW&uqTu=c^lr|nuQLe_%#^P^r=@_o4(>J2sB0wrr5f6N? z;l;k-L90P^XE3e7U;9tJd5U<+eLDr!3rUB#wG2a<(bql~KM+Dk#LLNu0&3EQ1|0i zhe>eum2!HSH=0(NR*w+%IV`VoU{u6rq{jm^{B-h_yroks%Rqd;jqxa|4g;yctKdcg zy;lqfgBmo~nlK>P=zm(OOq0_{aBszd_LC${*667{RY;U%cmC9w;hhp_%}YMd2XKc( z?c6!+MOTyEcPVVHd9~JD78<}Sjd9spBbc5fxoBg(73G#8}_;_znUe;8ga&8Oc}aF8(f z7*9w_CG5!tohmImtYN80aB0Dj1T0nT?_5NnJps(#Ci1O*yElcCEhZ$i+A(fV^D{k7 zmAt58Jm@cYj+qu*kg(HtyV3*D>LKtK%QnLB=d5}UO4h`9NlVTcD6qOSZnyJ8&o_=} znw6fr@um};UfK&L^M1`-{%muy6YTn$#vL`kK9U^0!V?_J14t~V%RTv?)Yt^MIP6Aj zDaw0AVy6YCz?_jntxq;eE%6-K6XDFn{-s2SoK^(l2Bt*z0wB~s+TY(8@@1T8^p zyQaP;SZZuz*&%f99Zt+SIx12v)77+XqqMrZw*$+gf17zo{^W=!%{|h6P>p~*~gb)Lk}j*y@Q=))3~6z#17ISr6H8Y$365cP-XFKa4X?vHNo|2 zd}8L;`;)HOU<2rCGFVT8^FNuo^xSJBkZzPNYqK%Y_0kW)gIazdm%k2V_~Y!AyId|! zZGVbiQ(slvG^ok0wA2JODR+l>J-bu}sxs)@QyfA(An1?LdYFb8o&rt>mi?IfnbHYn zxr{^I-nJ*w__=XYa!?PqTBHruYqrk2^sOwcu*WUS7b*vmQ~A9Dh4H^KUOeMTE-!yEqmLKxkR3DCVM(h`485h5LV1L$sse% z12eRsj&?jvf3-{-=1C*=%;mh=npRR0{XRny(6v4w-uh?|K7 z+jN=9loL(Ytm#F9m~8pX*7a+9WMyU^OoT7zZkae|`k21s6K2HE{G-Bn#^eJWj)Qc- zi)7%p-0?+o$4zr&xYK2}oVl5Uv2}gqOSPcj;-=WPdSs4SUNt!rG6TD%%BR;G1R%QFlN>!~AO7L*7>`o5MG7zPV(^p~+!u^$rH(42 zo4FX!w&&Y*iWojGgHZhyXXo&FrQu}>88sQa#DOfsAmt}7q0f=VNnkmJaEo8&2XK*5 zptto-CK)Np3k1%5n)#w!_(a2R05|x`-hV>jw;@2YKxJe=G+wcvadiW)Cl_R%2m|%M zPkJ-=ORw5=s(KlOiX8M@0A^NZ!>EV4$Fy&QTJ7DYW3<<#7iBa87A$vp)rN7=G>74a z3hpSL7Ek>A_4Njk*3DC(7I91D0j?H34-k>gQzH*EPpLa~2qWruOt(se)`rN;b)(w$ z2XY!IYXakvDH?r&`_s&I6kz3P5D)g{qT#YP^u}f7%$`#pO({*YwKu`Aog9oE=RO6L zqHD5bn20H!4v@=)AHFI?lj4g6w>;(Gop17Av0>x zQh5K|CRvcYdkQBoNOozSneH%UbEyu`1oes5&oTq>0}^tDnbO0rFx)TOxMAi2ZcR~X zM7p%sbWa;j-n_8W6VzM&y)rBRHZL~2c@biMNfdvyoA#qjs_G~lO9tqdJ_fJ>mX5u5 z7FOZ$THHh_!lQu2x7vj%D=Q;`0?xDBX{s_9X<)td-`FZ;>V2^Dk?r_hY{HAlwj|Lq7=-^SxkGtP%__r3-91h1SO#P`pM0894K zL}+e8n&a8S={3pXvdP?VcAW_*vW(PfSL(`t6)mWrAb60HLnV}%xio1M)^M^&PGKe= zuh#e70HyEWxYs{2yS&?@|E7KjH-E{I;ptdTiyyu@DS44|yH%{!sa>GQ3KyeHa(K3O z_3HPp%-^U%?i^UR>uib?;LLXs54cbEDyV05&2l^P@S+uI-?_cJyQz1cJow{1HXiGA zv3t|C^U=30GT)aU->~QP`KI%mE^a-(eld0ZOU1W~rB+X)#K$q4*vtHk@ei`I-*0~O z;L+{8cARa7#_`(YjyMB0!;4Cq*gB-eY*F#l(->r{(A;ZIa|wy#RY(=<4Yu(1L@u zkyA<+Mfu^7XA@&&y`djL3paMDH0esyRAmEN<2=bEa6NakSv|1jJoEmw*|aDHuyxf= zH&5AxxJxY$9K$vG7W#OL2L9oFj5zmAf?xzBBAHyK)FfuxdytLV4DKzyxaGK96b`3c zN8op<3!b2_{5gxhnR_^JMTzFQwx`8zN8tsk2;rN}s7KpXCO3<~wwa6oea5?dKI;l9 zKm5v|9W+Z)IP{V=c!M%MJ?${KHIMeV(OfFrOrb2Zq120ffZNzsIBfD5?C#X&WIUVV z&eYVX2Y^b*=j`UveQ^n#St21xerA*TLl%MS#lX9=_3#MF7@(~qPqd}aVmbgnOy~Gs z#m!Xc?RfrqZ5RE1Gvlu9?6%=XWy@p9uw;5X9B;f8^Kv7FPQS66eJpu+tx`U74vL!v~ zMn^MJya1U>l6a($PcONqS~3YHI(@d~yJK?Gcrv<3n8_WA3P^%p1&P%gbV^DWvn)2b z)swz^><^F0c=H0f-LshFj>r~Yg~I8Jjz(F9w$w;LWZSGPo4l4P5vW@&8hCvveU)7} z`#_%K_1zVp8K0;eeB*C>ueWQ2omZ6aj)`1iJ(vut?%Pg+D(q%Uwg}u(x@e#5BY(s# z_UI`lp5U!MDj|ne^L(X7*kXWEme;~)mbbZjpV=mGE4(=GTS0QutUEn3*6r2r?ry@K zoX}5G@b;|nj+ouw)W|b6lVTK>c`c4RHv+a2dsg8cx$inP(nr=vd1jd4XH)ALKNjPA zk->5nq9l|YO7>x}$qaSE2R4Hp%fiV-GH6ez+z+Zb!`z5MJlithF4@7;pd->8D{3>s$OR8hj^1}ndRpJUcjZZKGQ*AJs3W&<1*(ZG0I zX~RlA9GfwltL997o=U8TZ(M|PU{MiI#~vwiMl zR@XIEuh}O79(^&vS{NHVoMWr4B1MAvanF-x)j&O;sizjg!e9*k-EByfwMf_P0nc1L zG%?LR{f;_Xp=a*?vW)(;NERz}*IN`Gg@K~mIXG84<0;cNKgV^*oHQNP9Vf1W-x?wO zrStc^?8kz?CA1-OzmwKAjL?|3L#wa6Ia!l|Z@cFUI#YOe?9?PqnJ0XUNqW6&+M26#ek7H_D|# zE>b9ZaemCOE$VWqaQFEjAE8g^a!Kg}qN0vQar*@tKCTzbZ|jzlasfj-?M=R`rWc{? zrxm(i=u?RuT2iOh$AJq*=z2^mba@DPGd1i?de(6FngTp{ZXkTsr?uxMSHZSm`_ zUQ8Pj!Kq<)cQ;#1Pz@iO`7XTZUGMGp1f8^;%&(twiJku(_}V}Uy$EQr!D;lXf0$|` zE!|e!V5nyb>Q`P8XgIL1IBZ#0{cUZnYem;XscXa56rgYJtlTSb5p@}jS$}8{i;V04 z4bF&gmo?oVtuCN1Xx8W;hh2LJfl8O$0GDFVos1P|(ZHCM55Y4PkU4pw8!o#^NlGT* zmnYZbeCug4;FIURmh{H7MWfRl_o$-Ayqlzjmj`ZIE+E~l`;PHRTu;%U$*H;(8HcpX zJ4xb<)cZ*A{<@RasCO&!>@Q#^PF?r&E!!dY6$F8q_QkXMgE9fZ6;k`b9Ssl*a)!^k*r2xTF_{nYp}U$$^>Qt;>8|9ZkWK zaA*q^oxkiHI8QMWX2YB%!pM-)5<&jEM{RLZR*C{||FWj^$71UUyLcysBBliv9q%H-FEfRi$t-6WwL=aQT42>|92L?&m^U3ZyLIxIKZcE zRt_xC!eR>}t=8OTlvpx2QpF!MZdz@bI{GWvn7kPkFp{#M+;Bj*gS8n?1ig0}{ZDAB zsGLvv8`a#@refi)F&4O4;d<37qsvP&Fny)GLNK){#ZTJq%VYZ`tcM zcXKCeCbD)0PN$)7o9Zz|S`V`>cg{ zTa9-xQe{D@!i$x}Alm68oMjJGbz1h$4he!~?$GZqo7>tko z!e?d$^_UnJ@8EMTv&wKQY1p;49t+(+zwvG<2|&oSLc@)g0gfpE52QN4ycs*0!#_rG z*ZY|4PF3FqrXJX*&y1TwA-?De%8>{V)~=Z^c9%-nJ76{7+lS`O+>p!eRAea7X?C!BbmiR&93- zOz?4_e>Jp za~^e>nepYG^DqB&ilmC$cM1%v|5|`wIO_0iAhhxjxG*)Oo+3Jr9pJoQbU-f;G?o^h zMjZPt(p#`a`L;lz+`$fq64tB&aU%lsqe~ zG2Jk~$l56bDS|HsPUPaj9$%micE9c!<^c2SZ5URaXZ|7yFpmZHuz`z(ATixCK0ZE7 zy$K|=h*z%?xMf{kX4>{9S%5$e4P9lc(P%U~cAj(oI#2FwZ3}4b-E(a=#4O8>Y{uPS zHi9)l4Ud-rY22CQzp;=RQ#hmmqvOK}w`^(g*m1JlJ$00fo{ z_Yne+!da&C%zKYppoUwZrrT30JUl^mjSl42W4Y)C9u5!Q3xQ+j0Z}cE#GO$;?Hf#7 z2Z_pN#iFny6=dYepLX7>$KK!sU4SUNgm-e+VdZ55Bj{0lqdI>s>q->zc#QAY+x05X z3-SE9<&!rEu77tpbj*t2IRfV5r{e)moNi+{IOV?nTA_kMJhqy~=SWKc7y_tN#*Sdm zqJ|gk1jYjY6SL$E@n?FpQ6d6RL&(ke<}v5;@9!kMzZ*%*O}qrF^%5dA0>fj)d|U%~ zCX6h;4XpjDIzV-J0Bv=U_tT2V0^J1@;(tDzHzzz);UfmvZDN4Cy8-+LhVCyWrdl#I zY59VQku~ByNn1g(_?A$m*mlVqLX-xb)E$iAIy<-O3zbCi;AwF=u;~WqeW$uDWInYb zQw4uVp`&HW-|^`OcX9M#y#-pM$A7&Dk9P2}izp!!WC1ygQNmzK!OR85J)e^jg@)y$ za4#?{W8k-`f={{1J9(rYaDoM{0Jk+!f0XF*ZQ=-xPk{IsTYG6?B@yaHM>S_Q@l62# z1+ITtzayak=I>w$`O7FoM<^`$!E9jr){*Z_lFur+ z(fz!*0?I7xfcj`tPb1|`w*6pDG#>`058bvq35C4a~M)r2jJK60M`Ax70*hD zN~Q?jvWhm6Xh-G@@Aj1f+#jxUg7$d_u~pe^sNbBlBt47YsQdEvL_5-|L7Yd}CA{W$ z#eZSi9{f3NfYoo2#A1b_uLw1WL_#tMdAz{GC-Rnp4Un;c&zme#9WMMY0(1$rw!5v3#Swr<2fIPt${@5!o~nwn$6 z{m-5~bKK?b?k-hrLpqepjf#qzq~#L`gh^W0_9|Z;(V;7 zqRRlUi{#F{(u4E~4v;YzN#%L~lTZn`g<@jEieI}oE_&ttO1IB}?$^clQECop@rg6! zLuz-LH()b8Y-WzX>mz%=_qi+;9iZ6_PFHR3cIX2^YSI{q&&6w}{Gpw4Tu;x$|NJ`~ z-GK|e-FvZkLFffe+y_38%JX@aX({^}x;H#~18frT=C>{9871!2lRrlxT&^e(Wxv_; zzv_eW(e?i@OZnFU`=2^s|JPW`e{f}zI=C>mqZxGWt8NB$>yn#eH7DbmL8Lv?;L37< z0GYowN$n`Kl^U(TAh=!3fRhBKy3=j;xG6_^q zulTRPlln;uO6<-o{S5gBvAR@B^ZQwi2dO;I`WESk9F`)sT51n5hYMpd@j#a^Wo~`q zJ*v4Sc|v8hi^A=F;VvPz8j zc|VUO9o=#6qSUBYmV&3{><@{8$IM5)72gqn@&f$+3>z*Cd7pu4dWJaACecj)w$Nqf z;heF-6n8xgevt3P0?ovsHV@TtY5{#my*m|qcYFk1sq)GL{R(gJAUnd$6U6a5jUvJK z{k!SP3;qt}cM&+U<tBhNb1T=vg$v?;I;=;Vl?%yiML z%rgSLL?m8Y#?zsSSr*9+Rd7Ps0Yqi zgF8227*rmBpX+UA>?(jcA4yOJ9O*9pO&YqIM^BPH%{Y&pxkBbZ( zyM@m*zAX=;wVD(X1tB$NdoReo`HP(?uMM^ky9UMDaos+46_x6-mH|`U1WIcl;J9 zXshgw!{3sM=iqPeb;#>mnqd>s{um`ePa%SPeCdCX> zoXuJ7L|cOpXIhu3E^dL+m^w=)vD7FyHO$SOY8-I*&pAh!PkQmsj5VO43;zI1^o(m#(xpJ{;FV!B=ZE{stY~0!P(kz1xE4s z#PitTh1?%15)h1m*O+xa4ss!=K2Pca9$wY6_W;jn1YU;zBja80Fj{p-LoY_q%tndk zWw79og0&PC)lLa2L8@W%l6UXOKgBmEN1#MkF1bp2o>JIC49~uqyJsri06=YmlazB;hFD+fM^1Et&e^H z;di-l{m(Z?WPe=2+V~iZ5B$990y5!;od2gIs#lnBmb3(cSXv5m0haJwVb4puqM*F3 zlKosRQdtATSH9*$3s6IoMpoE)21t7h^JQ%y$l15vKJs7J4xi#h4}k!R^?yVAL4-o82XxF|9yMg!PJso(^GPh>-HmQ2>{w}Ujs&VsSX)O2<*F@3 zsevscC6$ODWV6|cc&5K{G|imbHVX>goP+o=HP%6ak=e@>tOjS#OZHstparJSXb^hjZI394A3m3h8F^kY+Hm?RjFS)q-=d#_`lDWwRV_Fe9$X*~;y^vh z9s=;_AMp+M9UoVy zul|VJ0C_?ze}<>zg8vp5tHYR0T*&@L0|+JH6bW~EEa)xW=Odu(vJjdw6WFIEWT(k@ zh4*RQ*jWq3>T3ga4lj6dwsqJ$$}$T<&OI+dK;loCJs5ydaTrf7gz-bkDu5xPfuSmj zrW?T?Jqjdm@Vf9o!r0Znulw)n{_|!IeCsVKBNOSAP^@?ScuV!@*qEbYmgCxCPJq9E z3t@u8;j|Fk%hon9leyMx(A_90CUV%3H8nP=_w5}z%`s3K1bDnSgZ7#~>k8Zn*Y{|J zW{<{;RVR6#>AOOn0KOt{b8Rs_r;|U2kyTSwp+WsC8-lH{w{}~W2 zt>U`~e+vj(KJ2f(@{fSPczG~&B@d?l4iNqrsk0CH_jURB_wVZd1o!`kHuC}?Z2uP! q{sjcUgcbIm@f@WJB;lJ=dy^S=N(W^+#f literal 0 HcmV?d00001 diff --git a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/2.png b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c19b048bcc0bf49edc530c42b99d5925ff0c8cba GIT binary patch literal 37348 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 HaQ*)P+A8y3 literal 0 HcmV?d00001 diff --git a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/README.md b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/README.md index f0661db50..0a2f80371 100755 --- a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/README.md +++ b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/README.md @@ -1,28 +1,45 @@ # [3623.Count Number of Trapezoids I][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description +You are given a 2D integer array `points`, where `points[i] = [xi, yi]` represents the coordinates of the ith point on the Cartesian plane. + +A **horizontal trapezoid** is a convex quadrilateral with **at least one pair** of horizontal sides (i.e. parallel to the x-axis). Two lines are parallel if and only if they have the same slope. + +Return the number of unique **horizontal trapezoids** that can be formed by choosing any four distinct points from `points`. -**Example 1:** +Since the answer may be very large, return it **modulo** `10^9 + 7`. + +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: points = [[1,0],[2,0],[3,0],[2,2],[3,2]] + +Output: 3 + +Explanation: + +There are three distinct ways to pick four points that form a horizontal trapezoid: + +Using points [1,0], [2,0], [3,2], and [2,2]. +Using points [2,0], [3,0], [3,2], and [2,2]. +Using points [1,0], [3,0], [3,2], and [2,2]. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Count Number of Trapezoids I -```go ``` +Input: points = [[0,0],[1,0],[0,1],[2,1]] +Output: 1 + +Explanation: + +There is only one horizontal trapezoid that can be formed. +``` ## 结语 diff --git a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution.go b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution.go index d115ccf5e..31d750567 100644 --- a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution.go +++ b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution.go @@ -1,5 +1,29 @@ package Solution -func Solution(x bool) bool { - return x +const mod = 1000000007 + +func Solution(points [][]int) int { + columns := make(map[int]int) + for _, p := range points { + columns[p[1]]++ + } + + pairs := []int{} + sum, count := 0, 0 + for _, c := range columns { + if c < 2 { + continue + } + count = c * (c - 1) / 2 + sum = (sum + count) % mod + pairs = append(pairs, count) + } + var ret int + for _, pair := range pairs { + ret = (ret + pair*((sum-pair+mod)%mod)) % mod + } + + // 使用模逆元乘以 1/2 + inv2 := (mod + 1) / 2 + return (ret * inv2) % mod } diff --git a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution_test.go b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution_test.go index 14ff50eb4..de9e518b6 100644 --- a/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution_test.go +++ b/leetcode/3601-3700/3623.Count-Number-of-Trapezoids-I/Solution_test.go @@ -10,12 +10,11 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{1, 0}, {2, 0}, {3, 0}, {2, 2}, {3, 2}}, 3}, + {"TestCase2", [][]int{{0, 0}, {1, 0}, {0, 1}, {2, 1}}, 1}, } // 开始测试 @@ -30,10 +29,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }