heh
good
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | src/inp.txt | 2252 | ||||
| -rw-r--r-- | src/main.rs | 217 | ||||
| -rw-r--r-- | src/util.rs | 173 |
4 files changed, 1170 insertions, 1476 deletions
@@ -6,8 +6,12 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +atools = "0.1.5" +hinted = "0.0.1" itertools = "0.12.0" memchr = "2.6.4" +radsort = "0.1.1" +rustc-hash = { version = "2.1.0", features = ["nightly"] } [profile.release] lto = true codegen-units = 1 diff --git a/src/inp.txt b/src/inp.txt index 58449f1..86c469c 100644 --- a/src/inp.txt +++ b/src/inp.txt @@ -1,1252 +1,1000 @@ -pzt: zfx qdv -tzg: bqj -fcj: znv sjk pqc zcr -jrm: qpf lrs xgm -dxx: lrz xvc pcs -zbt: vpp khl hnc -pjt: jbr -qpf: trv gnl -jjd: pnj lfr sdv -xrt: lkc qfj bmx rtt -vvl: mkq -cdn: kkz fdl hsr -sgq: xqd -htv: qcb vgz jdz fqd llm -mkp: kmj ktt dbg -txd: hrf bcf lpr -scv: jmj jdf glc -kpx: xmd jqh -zhj: qbq sqr rqr tvg tjs cnz -vtf: slb gxt mrg -bkc: gmk rmk -jrj: xpg rsz qnp sln -nbf: vcz tbn nfb -xfz: jgh dkp mkc -hsr: bqh vpp fkq -dbc: hfb ksl fgs -qls: pgg -kvn: hfp -fcr: vzx lfl jmj pmn spt sjl lgg -kpq: jkj sjz dkc zhq -dst: ftf thj smm ltr dkb pzt -fgv: tzz prd hcq dkr -qcr: vqs -khl: fdl fbd -gsn: rlm -xrm: dkc -sqf: mzj tkj ntf -fpt: tmn dmp bls -kst: cqt pmr -lbb: gnd jtz dpm cmq cgr -sjz: rxv kcp xpf xck mpp ddr dcm -scs: kkg gxz -mdq: sdh ldj dsg -ppm: mjg kmd -qbl: cmh vdz -svb: jqr jsx -bfb: fml bln xkj -jnh: qbq vfd kqh -fqz: ctq fqc zfb -ndl: xmk njr -zzx: nnf qqh tgm kzh kmr -svm: rpb fpg pkc grk -crm: smm dlg gnl vgz vnp -qkf: jtr cvv ghs khg ntd -rll: cbx vgt zfb -spt: znb -ckr: bfd xxq zkm -nnd: kkz msm tdz gxk -pmc: xkf tnr pbq -pxf: tsp zcv -fxh: rxl sxn zbb rmc -mqs: mzj vkc -jkl: xrl vln zpf lvg -tkx: zgz vpp knn mzc -bml: qcm tcq lvz lqs -cfn: pjd -pnj: pcc khl mbf bzp -fsm: snd gmr mqf nrg -ftt: hnc qrr qfb smr -dhr: dpc -mns: gbd tqh -cdr: xvj sxn kcq -cfc: zbh -tlt: qxd xxg xlq jnx -kkx: ltv -jqq: pzv bkv jlk -brr: sqf mrn mkp hmc sjz -qgg: srn lvp dsg -jnx: rpd scv -cjc: xlh stk fdp -ktb: rjx qdh szh sfq -zfb: jzq -fdz: dfp rsz -phl: djf gql -dxg: gxk skv -qcx: pfp kmx spt ghp -hhd: qzv qqh -xsm: gxt hkb xtk cbx -lkn: fnl htd mjt kvm -xpk: gtl pxx gmh -kxz: gmz mmm hpk -ksq: jbr sdv hpt sfl -mcx: mzg qcm mhc hgt -pdk: lvg xfc jkv nfj -nhk: kmd zgh ckr -nnt: qxc pnj bdp sqz -qfq: npp vnr fsq kgh -ggq: xpg qlc nnx qjq -nrm: rzv bln -krc: xsz znt -llv: vkm xfq xbk xvk -tgm: vjt fmc -bxg: jlv lvz -vld: xgt -hpt: tzp dtm vgq lmj glv -qvx: tnr czl snh jmb -qtf: dsj vtn -zdp: ffr cbq tcp -lxx: qkp pzt plr -sdc: spr zbh -bkq: zfx knp -dhn: xkj hjr rnh -jbx: nnm vgk -kqk: xvx mhm ffv -slb: lrt jcg rkb -lvj: ffv ntl stz -mpt: ztk -jdg: mzp fcf jxv pxp -slr: jjd svr jcg -mdj: qrk vck jzx fqb -nqp: hkk szb -mlh: fhq -thc: pqm rsh -nrt: nrm btg qhr mpc kst -smm: gnt -jpm: plr -qsv: fhq pbl kqk fjx qbl -jlm: zdd czn bmr lcx -sps: zgz jbr -dtm: str -vkh: btx -hcp: fmc -pmf: lnq vxb qfj mqf -xvk: svl jbr mzz -ftj: cnf dxp mjg hrz -jmn: ddr sxv mzb nzk lgz dhp -bjc: xxg -snx: dbf pbm cjc xfz hlm gcn -pbm: kps bkr rsr -jjl: sfq drk rgv gcl -dmt: ktp -zzd: qnv -tct: ftz glc dqc -ssq: jcb -dfl: qvt zcp mtn kcr -xsn: fdl gqd vqs -gch: sbt brs sct cmq gln -tpb: nfg rpb trg bhh -bmr: zxq vgh mts -hhr: bhd xhf jcb krx -hls: mkq rjx rzj -spq: msq cmh rgv ddv pfp -vhn: hnq sls bnc fdv -fkk: gpm rdx kxb ndd -lkg: qpf xpp -qgc: mjm mct gbr -hhq: gjp tmh tcp sgz -nlz: vkc jgb xmd fbh -lrs: fpm -ghg: nzk kfs gqk -jqt: glv bfb fpl btk -rdt: nkx pzg -fbd: skn -dpj: pjs -vkm: xgt pxp gdv -lvq: mds mdq lxk xtg -dxl: grb hjc srj -jxr: sfl mbz nnc fbd -qtk: pbq -knp: tmd -phb: vgk -nsv: phl rnj szh cgr -bnd: zdg xlj mjg -fxd: xjk dbt fkq vnr -vzh: nnm dfq htd jqg -ggx: ntz bkr fzq zjf -rkb: tzp xmh glj -sxv: rsr nzh -pkf: kcp hpk vsh -gdz: bll fmc -hjs: dhk -qhg: gln -mgq: bkc xnh xvj xkf rpd -rsd: lsl znb hcq -mgr: kvl -lqb: nss fpl hkb gsn jzk -npq: grk ddk rsh vfq -gcn: mrq mzb brs sfp -rff: cvn -fdx: xfq gjq -tqm: pqm bgx -ntp: fbd scj cbq -pfg: ckb vkh vxb rtl -xpg: jsg zdf -djf: szb zpk -vft: hcq xkf -ldj: pqm -jbk: jdz nfq gmj hkk jsn -rqj: qts kvj pdd cpn -crx: vpp -dsv: zpk vxr bkn -mhm: rpp mpg nzk kmr -kcf: sfn -nkx: jlp -rvh: lrs zlp rgd rkj -ffq: ksk lzm bnm spn qqt -pxs: cfc kvj zrc xjn -jjv: rhp pkf lvb -ntz: mzj nsg -dmx: zln pbl fdp mkc ppk -dqb: pxg gcq sjk lnx blz -bss: tdq jrk -qjv: xtp kcj bmx vcq zcg -bxj: vnl xfl -ntc: tng -khm: jcb qpd -mzd: fzq dvp brh zxl -rqm: gbq -ldb: tmg -tsq: cfn frd xck rxl -qpr: lnq lfd qfb -ckb: lxk nfb -rlk: gxm pfr tbh gql -kcb: ssh pcc -lfc: ltm hdg xrf hrf -xjm: kgr cbn vpf dlz dgh -pzv: qrs njj -vpj: qbq -vxf: lhk -mjp: tch pzg zlb mts -jlt: vdz mtb -blz: ftx -pkc: vrt pzr -spn: rmn bff mdf -rnk: fbd cqt -ckj: jkv djf cxq llm ndn -jmz: sjh cjg nlz jgh -nzz: nzs pqm nrg zhl -lvb: dpj mzf -jkj: zmz qls bqv -bfc: dhk -czq: klv ssh -npp: jqs pjt bhh gpm -jmj: lqs rsm sml -vgx: nfc -mfs: ffv -scn: fhq -svg: jlv -jjc: tbb lzn -rcs: vcf fnx gnz smr llk xsz dtm -pvk: gvx bpd mrc vck stm -dzb: pdq dlt tcr hvd -dpg: pdd -cjx: xsz vtn fjb grv -jkf: nmc vlp pxj krp -lmg: tvj jqh -lxv: mrc xns gln -dvn: rrn krc ndm -jhh: ztj lcc bkn -ntl: cvh -rlj: vjj lnx pzg dfq -mhj: lzm pgj lfp cbh -tnr: qdt -vjn: kkz zfb dtp sfn -jsn: xpf -mdf: ckj xfc zmt -hjr: gbq mbx -rqn: stm xlq -dpf: kvk -sgs: rhp -mtm: tdb fqd lgx blr -klh: tzg -rsm: qfd -fqb: dpf tmd hfp gvx -ffv: kvk -scf: rkt xns mcs nrf -zzb: nft hcp nkh gxm -lhs: klv dtp ffr shv -xzx: fzt srn vxb ghs -rjx: qkk djv -lnm: vfp zhl gll czq -snh: tdb vzn nrf mxn -pzd: fhj bkh -vhq: dsg ssn hdx zcr -zrd: bll -rxm: tcx kxb zgz -htm: grb sbk pcm -mpg: dvp jsx -vlm: ttd dpx lss -vnl: ksl txn -czg: hrz gks kfl -mkc: kns -jjr: hkq cqm xqd tqj vbx -fnl: qcl thc -tgg: dxg nck fcn -kgv: xgl ztk dfs -lqs: bll -xkl: hkk -hmc: hkk -ztb: rmp rxv jzz -pzr: jdh qcd gsn svx -zlg: gpm -jvd: bjc crn brh lrn -xhh: bzp gbq -zdk: crn gks sct lqh -vbq: nzh fzq sxn jgs -txv: tkg qfk jlj bkr -tzl: bcf -cts: gjl vgk -dcd: pkc gcp ndd rxm -khj: lvz qfd rkt kcp -lxz: dkc qgj ztb -cbq: dgh -ckl: mts shv -gmh: rdr phb -tmf: xzt gjl mzr -cjr: fnl tsp ptq -xhf: xpf btv -qbf: tbh pcp -hfp: xlj -lgg: dbn ltv bnm -gqd: zzd rdr -rfm: hgf hjl vcz -mcj: xkj hnh dhk -xml: nkx -xvf: czp -drz: dpg pxk jtl -hld: jzl krp lrt -gjf: cjc qxd pfm lgz -ctf: vkh -mnh: fcm tsf qnv zbk tth -gdg: cpn vjj vgk -vtg: jsn mkp ddv tnr -nft: ntq prb jjc lcc -zqp: tkg jrm kmj -szm: nfp vgh -xmz: qbq tjp zvf -mzp: bln dhn bvj xgl -gvj: hjs xml -nhx: pcl mrg -xvc: pxk -bmx: lhx htm khg xfl -jqd: drp zjf msq lfl -llm: mzb -lns: cfn srv mrn -scq: zcf slb lmp mpc -cnt: zkn hgk knp lvj -kbb: ktt nvf ccd mrn -gpr: kpx hgl jsx bll -dfm: fbp dbg xzq mmm -qdk: czl -smr: pcc -hps: dng rfl -lgv: jcg qcl fxk vfc -nrf: hkk tmd -lrt: blz -svr: sps xbk khg -dlt: sjh xvf -qvt: vrn dxp ffx -fcf: gcp nnm ntp -jzk: xgt fqc mfs -rnq: jsr vzx gqk ccr -kmx: znb pgj lkg zdg vzx -vxr: crn -vxc: fgq -jfr: kvn qdk rpd glc -vtd: qbh xxg qkp ntl -grv: zzd pjt sch -jrk: grk -mbx: xqb bgx -rpz: xqb lrz tqz nbf pqc -xsz: pjx -qbh: zrr kns ntz -jph: qkk -xvx: mbj zbg pgj sln jnh -cbd: zzd bgf cpn -nfg: tzp jlp bsp -gjp: lbs zlg hjp -vqf: shv mpt jjf xtp btk xsn -qrv: vjr dfq -kxk: lvn vgn rff -ksk: xvf -stz: mzf ffx -kzx: kcf rnh bzc dfs ztk -tng: qbf -ntm: zfb fdx qfb vhj -pcl: ngs tdq -xjt: pxk lhx mts -nvl: ckr khm gql vkc -rqr: vhg vdz -knn: btg pxx -fpl: nhg nrg -gjq: vrh -mxc: hnq nfc -mct: xrm -kjk: cvv fkq dlz -ppk: ndn dxr jgs -hkq: pjh -rvc: dsg mgr pcl lmd -rgl: xvf pgg gbd qlc qrk -blr: rkj lpp tnr svf -rcj: pjx fpt hfz rlj -xlj: xgm -hkb: klh gkd -zcr: cfc qtf -zvc: xqd ltv -kvl: bgx -djv: bnc mff ztj -tzs: dfp dsv jlj nzm sln -dgn: hcj vtf kst rdr -glc: tjp gqj -xnk: mns rmk czp gvx -pcp: bjv -srn: gjp xtg hdg -lxk: rnh -vfd: tdb dpc -ngp: hgv gbq crx -zsd: sdh bkz dgc -lvk: nss grb mzn -hgt: vsx -xgl: bzp pkh -dpt: mzg sxn xkl kps ppk -flz: ncg hnn mrq xfc -fgd: rph hfz dbc -hbl: ghf jqq mfv gdg mpc -gxh: crv nnd nhx -vdn: kmd bjv -cnc: rxq jfj svb -ksl: sfn -msm: pqm szm -rdz: ckc cnc sxj lrs -nnc: lbs jrk -bvj: cvn xfl -rsz: pcp -mgs: nsx tsq vgz dsv -pxx: xmh -lvp: mxl -btt: bhd dpc qlc -ddv: jgb rps -drp: xlq -vln: gnd xxg -rsj: jqt mpt hld vgt -kzh: tgm jsn blx -sdf: rff qrv htd fkf fhk dpg -hgb: jvk tzv qmn vnz -nvd: pzp tvj -sjh: qzv -svl: sdv hjs -kzz: hlx bzp gtl -rps: zfx srv jvk -tcp: kbg -qrk: dkr bkq -vfk: cbx ppt -mxh: xsj ftx hrf -lcc: pfm -rmm: hss dxr mrq -xck: rsm -mvr: jbk xnh zhh pbq ffv -xmh: bfc -htr: pxf chr gmm fgs bps rdr -tkr: jnx bfd ntc xsd -bdg: rpp gks qqm ctp -rbg: klr zhh -pmq: bcv knp glc -jzl: nqf gsx qtr ctf vcd -ddk: kkg lcx lhj -tjb: htm chr vgt xjg -vcq: tdz zdd -llk: jbx jtl tlb rmd -jqj: stk nfj vtb bjh kcr fkn bhc -cbx: lnq -txt: rbg kcp -vnz: tzv tbg -bhc: cqv zrz -vzf: vkm trg lpj dmp -qcl: fjb -zxq: ssh gjl sbj mbz -kqh: zrz vbx -vhp: gjp vbg fqz -nrp: znv -kjl: rjg krp mxl -rcg: mtr nxf kvm npr -rqx: kvb nmc -ntd: nbf cts -bkz: zcv -zgh: lqf bff nnn -hgk: kns tcq qvl -kqq: hnc vfp srn tmn tjb -kgh: smr tbn pmr vfk -chr: ngs kcb -zxm: jqs ptq mxr -lmp: hnh szc dqb xtk -hrs: tmf fml -mpc: cfc -qkp: fbh -ffx: ksk -pnk: mct scn jbs slm -fqm: sch knb nkx bzp -blx: cvh hgl xkf -pmr: hjs pxj -gnj: fqj zxl rqg -ngb: vds ljh qhr dfc -cmq: gfx czl -xfl: njr -ggj: jmj lsl ttz jtz -lss: ttz -ktm: dng cqt fhc -prx: zbh pjt -hqj: czp jlv vtb vgc -kgf: rsr -vcz: hgv -tgc: fkq ndl rjg -cpf: nfc -vtx: glj zdd fgs zxm lrb -mtn: bjc djv gxm -vrn: ssq -cvg: cdp gln dkp -htk: qzv bcq jmb vqr pmn xkf -lrk: cvv msr -zcf: scs -skp: gmj hcp gnt zjk rxl -krx: vxf jfj dgq vft -xxg: cpf tdb -vsh: rkt rxb -tmh: qts tdn rnk xjk -snd: jjf gjq pzg pbc -mxk: ztz ztj kqs -qnh: gks scn hkq hgk -qvl: xvj -dql: txn cdn rph zdp -knb: ctq -vxk: tjp -zbk: kzh ffv xqd lbp -qvv: jbs ldr bcq vkf -cqt: xjn xgt hvk -hjp: mgd -nzm: khq qgc hjb tsf -mnx: ktt -ghs: ccj cqq -qfk: nfj zrz -vbg: khg pxg hnh -cqv: fxb -clp: ntd txd rkb kzk -kjx: dhr qtk -zcp: pzd dmt rbk -rdd: qrs vgn lvn lcx mgd -vnf: dlt qgc bcv -fmt: zkn -znb: jcb -fdv: lmg fdz dbg skz ffd -xdl: kss tnp ggh bqh pdh -qgn: dlg jph rmc qbl -ndt: fjb vkh hgv -grb: nzs -qtr: sfn ndl -vrh: trg vds -bnm: nsg gqk -mqf: npr qrr -xgx: dgh bxj nqv -cxc: hrs vjs kpm -nqv: dbj vgh nfp -pnm: hgk mqs mzb vlm bkc rgr -vgt: hgf ldb -pcd: nzh fbh rgv kfs -plr: mrc pzd tkj -vrj: tcr dgx kvn -fzt: sdc bqj -gbh: zpf plz fdz zvf qkk -vjt: rbk -ljh: tbg skv tmg hdg vcf -bzz: fgs nrg rdt vjj -drq: cxc xgv tzl ksl -dzx: lpr hfz tsr ssn knn -xsj: srj mzc qnv -xgv: nss jlk -nnf: vmp czp -bps: jxv ssh cbx -xjk: sgj dtp ngm -bkv: ddn qhr -mzg: fmt -cpk: hzn rrn bvj tdz -vcf: rpb bzp -vmf: lgk hhd bjv rqg hcp -hrz: xrm -mzc: fjb psb nfp -sbj: mbz -mts: dsj -ggh: msr ckl -rxq: hls qkp xnk -qtc: hnh zbn ckl hkb -cxq: mnx prb -lmv: nsx sxj hgt cdb nnn -zhl: dsg -fjx: mxk mzf gbh -ldp: zlx khd -jhb: fhc pcc -hpp: rjx sml stk ccd -fxb: kgx -fvf: mfz vrt rkb hgf csb hrf -dfp: bkq dxp -xnl: fvb hdg lfr jtl -rjg: bsp ffr -fcm: zkn -xzl: bjg pfr -pzp: sls rnq ftn mqs mzh -pjd: bff jqh -gfb: fhr zkn ncg jmj -gcf: rll jcc pxs -nkh: vrn drp stk -frl: bkz fzv -vfp: xkt bkv -kmj: czl mpp -lmq: czn sqz -ndj: njr btx hjl -njr: dfq fzv -fnj: zvc tvf gks nnf xrm sxv -xqb: qrr ctq -cbh: cmh lcc qzz -pnv: bqh fcn xrf dbj -mjm: fdp -vcr: pzv bfc fqc ngp kvb -qng: nds vld cbq kzz -dng: sgx -njz: mzr czn kkz khd -sfn: spr -gzm: rgt qqf gtl -bnc: qzz mzb -xpp: xrl mhc qcb -gkd: lmq -sns: njk hrf fhc vnl -ccd: rxr -hsp: xgm lpp rbg cxq -qrb: tgm scn zmz bgc -nvf: crn jbm qfk -gkn: vlk ktp dpj -vgk: gxz -jtg: svl kvl ptq npr -hlx: sgj cjr xjm sdh -hgn: dpg zlx cpn khg ppt -dkb: fzq jhh -gnd: vpj -bcv: xhf ldr -qqm: rxb klr mtb qqh -zcg: fgs vqs ctf -bmv: pjh mgx gmz gdp -ddz: rhn lns fhj qhg -zlr: bdr -fml: dtp -mzj: llm -vlp: pkh -mgx: jqh rmc rmk -pmn: jlt -lqh: lgz zpk -zrc: pdg btx gtl -qqt: ndz dkp -nnx: kcp lfp hnq -nqf: sdv tsr lrt -rgz: tvj lxz zkm zrr tjp nzk -zpk: tbg -lbp: rnz -bqh: zgz -dlz: lrk -vnp: fdp bjg gql -gnt: qqj -rqg: ttz -pbt: gxh vgq kvf jtl xrf -rxd: pxg jbx tmn -tqh: qzv fpm -jsr: zpr -mzq: fqc csb scj mpt -rjf: cbq svx sbk -dvk: kjx mkq dpj -fvb: msm -dhl: xlf drz ddn xhh sjk -btk: jhb jlp -cbk: hjr nmc kgv rdx thc jfb -dlg: cdp -kcx: jqj fpm bhc lxv -tcg: svg -qbt: dpf rqn jbh jqr -zdx: ljn bgx rnh zxq -sqk: zrh gsx lrk -jqs: pzg vzh -jdj: pxp kcj htz rqm dvn mtr -qdv: jsr kxz cjg -pjs: slm vtb -hlv: xml dfr zbh kkg -vqm: vcd nrm pdd rlf xvp -ccj: glm htz -zlb: zrh klh zlg kbg -srb: gnz hvg -bgj: jqh jdz mlh -kvj: vjs -xcj: fqm gsn rnk qcr -zzv: qcx mmm jzx hvs -smh: csr jsx kcq -fhq: tkj -ktn: vvl jbs gqj vsh -kbj: tqp crv rqx xhh -str: bdp sbk fcn vgn -hpk: bnd -mhx: nrm pfc rhs txd znv bjm -klc: kfl kgx jpm prd -xbv: rpp mxc vlk fxb -mjt: gcp grv -qfn: zlb hps vjr -bcf: hfb csb -lkv: rnh vfc pxs zcf -xbq: ppm ltr rzj kmr -dms: vxk dgq kmd -hqf: nvd tcg jsr zmt vxk -sdv: lnx -lqn: ntz zzb czp -rlf: zrh -ccs: xxq vpj zzb -jln: kvl srn dbj -gxk: phb -jzx: lss tvj cjg prb -mbj: qqj mrn -xrl: lqs gql -brx: npp prx pcm knb -jtl: lfd -qxm: zbb lzn zlp zjf hgt -qkk: jjc tcr -lpj: sbj jqg xjg -svc: qdh qvl sml zcp -qfv: kxb zkp -tjz: tbh gnl jdf -kps: stm -dbf: vlk khm bld -xtp: vfk tlb -pkk: nft czp slm mjm -vtq: gdz bpd dgq rxr brh -qfb: dng dbj blz -mzz: gmm pzg jgv -vqn: rmd fgd hsg ktm -hdx: qqf -lxs: vgx dbn gbd -ntq: nzh nsg -vtb: jmb sqr -drk: mpg gql fmt -zvv: bcq dkc rmc zpf -gdv: vxc rgt pzg -gjl: psb -lhx: fzv bgx -sqr: cpf xxq -qhr: pkh -pfp: dtk -xsb: btx xql njj -jdf: cdp -fgx: pjs gmz -scx: bdr kjk zfb gmr htz -rkv: szb -rjq: lbs klh zkp bgf -xkv: jtl rqx vld tnp -rnp: hmc kcq dgx jbh -dhp: gnf trv -bzk: pxg pbc kbg njz xmk -rkj: rpp ztz rbk -tmn: xql xtk -frd: zrd -qcb: rbg -lcf: tqp tmg -ghp: qvl jsg jjc -rpg: xsj tzb ldb bdr -zpc: ckb fzt rhs spr rzv -lvz: cmh -dgc: mxl btg vjf -jbd: tlb lkv xpk mgd -csn: mbf -vht: mzh lkg gqh -rsr: lbp mns -lgk: zrd -zgt: mzh lgd svb vpj -pcs: fdx tcx sdc npr hjl -vbk: zkm mlh pcd vvl plr nvf -jqg: ffj -jlg: qcm dhr nhk cvh -tqz: jhb -dfz: mlh dbg qgj frz -ptv: xgx tzl qpr jtl -lfl: kfl ssq -pxp: cbl -ldr: rbk sln gmk -rgd: mrq pjs gbr -vkx: pdp tmg gvj grt -hvk: mfs nss skv -fvk: scs xjg -ktt: qfd -vvv: xgt ftx msr vfc -nfb: pxj -ndm: vjs -lpp: jfj jgh -rxv: sls kmd -fbv: mkp nfc dtk gnx szb gkn bnd -sjp: nds kcf khg bdr -lgx: qdk qzz -zlx: bxj tqz -rtl: tqz lcf qfv fgq -rrl: nzs tmg jcc -mrg: qhr vds -bld: vxf bkn fgx -vfq: ffj -gxm: lss -tch: zbt kvb ggh mgd -zzt: kcb pms jcg -tqp: vpf crx -vgf: cdr fcm jkv jpm -jlj: pfp -gcl: cqm gnl rcn jlj pdq -qnv: xgc -mbd: vrf ppm bjc zkm -jgl: cpf dmt vkf -vrs: hgv klv fvb ngm -qvp: ngs dxg ngm cfc -lpt: dql pxx lvk -hzc: frl grv jjf gjp -cdb: bjg -sjl: kgf tct rsm -fvj: clr bhh bnr xgc -zbg: bpg tjs frd -fsb: kgr vcq gxz -dbt: ljn zbn vlp -fnv: trv dkp -rdx: jqg gxz dtm -ssn: vqs dfs -cnf: qmn hpp kqs fqb ghg -bct: xlj cvg pbq vht -dbr: dpm sfp brh kmd -dff: gbh hzp kqf jbs -xsd: jbm qdt -zcs: jlp lhj bdp ldp -mfz: kgr sjk -gfj: cvv phb -ljn: mzc gvj dfq hvg -rmd: dgh dfs -ttd: fmc zmz mzh -qdh: ztz chl pmc mzh -bfd: ktp vxr -nxf: vjs gvj rlf -tdn: mbz rlf -mvn: dtg ldb sdc -hkn: khd ndj xkt mxl zrh sgz vfq -vqr: sgs ccd pmn kvn -tkg: mct -shh: hgl szh zmz qlc -dsh: qtc qfb ndm gcq -fkn: vbx gvx -cmz: zdp scq mvb fkf -fqv: lbb cnt rkt fnv -hgf: qcd -thj: mpp nvd mxc -xjn: ngm vtn -zln: dkp rqr rhp -btg: xzt kvl -rfl: kzk xvp pxk nfb bfc -scm: jlk tzl vfc -tvk: rcn lxx nvf mzj -cqq: lpr kkz -tcr: dkr -sbk: kcf -rnj: cqv zrr gql smm -fkf: mzn clr -khq: zpk bgj sbt -crv: bls bqj mbx -mml: lvg -stp: kvj tnp lhs btk -qdz: dpt dhp gdp dxp -rmc: hmc -rcn: gbd -fcq: dmt zrd dtk lqn kqh -xjg: hvg -rzj: svg -lkc: ldp pxf qqf -mfx: hjs ctq skn -gkv: vgx pjh bff -rxl: vlk tnr -hsg: fst gmr cvv -dfr: qrs svr xfq lrt -jqr: hvd -zkq: rqg gnd kgf bll -xgc: lvn bcl -cjg: gfx -brh: sgs -pgg: nqp sls -dxr: rmb -gmr: ffr -xnh: hgl -vmp: zpf jlt -gmm: bcl -vzn: xpf tvg cqv -ftf: dhr pvl zpr -gck: hvd dgx bjc mhc -fhk: cfc kvf -rgv: sgq -pht: kfp gxk rjf -hzp: dmt sfq btt -sxf: phb qfn rfm lcf tqm fhn -msq: ctp tsf -knc: hjp cbd rph -jrf: lvn gmh zkp -cbl: fhc gsx pxk -nbv: hrs mjt xkt rjg -pxl: gnj chl bmv -vkc: gfx -kgk: nrp qcd bss vxc tcn -jjf: rlm vcz -ndn: ssq -pms: ndl pjx gfj -btz: qcr tgc mds txn bdp mvb glm bzc -xzq: mnx mjm fmt pfm -lfr: lmq rrl -ndz: brs cdb fmc dvp tcq -sxj: jbh fcm -fqd: czp -pdh: drq bdr jxv gjl -mnr: pqm fvk scm qtr btg -ztt: scs zcv -zvf: hrz jsg -zxl: tvf rsz hgl rkt -bkh: tbb qfd qdt frd -gqh: hpp mpp jzz -shj: kgx sml ncg mnx -qlc: hfp -sbt: nkh -rhn: czp -npb: klr frd fpm kkx -zmx: vhj xgc ndd -pmt: bxg xsd dlg -qxc: tsr mpt -znt: bln rsh -rgt: tzg -xlf: kvf vxc bls -tgx: gqd szc zbn qrs -sch: sbk -pkl: nlz ntf kcp -dfx: fxd jcg kgk lfd xml -kxm: xck kkx rhn zdf cdb -zhh: gqj -hcq: ftz -prd: zfx ltv mjg jsx -lhj: kcf dfc -pdd: rdr -zhq: nsg mtm vft -vcd: fhk jcc -rhc: mrn hls xkl rxr vhg -vts: rkv gmz spt -lmj: fml sqz tbn -mff: lvg -dls: zhl qqf lpr xsz -trs: pnj xhh kjl vkh -rlm: rlf ffr -btv: hhd -jdz: xgh -cnz: bgn qqh mtb -sht: fvk nzs -bjh: jdf ktt pcp -ktj: nfj jbh tbh mml -zkp: nhg -bgf: mfx vrh -ssf: ncg jkv jfj jqr -svf: xhf vjt tvg -chc: grb hps sdh ngs -pvl: rpp -bqv: kgf khm -vlc: hvg vxb grk ftx hjc -kkg: hfb -jfb: zbn xtg xmk -hrf: gsx -tsz: xsd qtk pfr pjh -jgv: gjl klv qrv pcl -ltr: tkg qbf fbh -rhs: vjf tqm chc -zdf: tkj -bbm: kgf qnp jpm mff qnx -ddr: qqj -mzf: lrr rxb -gdp: npb xnh -xmb: lbs qxc krc ndm jbd -srj: pkh -jsx: vrn -gll: glm bzc -mmm: nnn mzj kdl qnp -stm: bjv -pxj: dsj -cvn: vds rzv -zbb: fbp mzg ghp -qts: nfg jln -tnp: lcx -jtz: jlt -gzc: xpk qcr jrf rcj qgg -dmp: bss jqg -tdz: znt kzk -ghn: zcf vgn mpt -tth: rkv mtb mxc tng -qjd: cbh pvp tcg pjh jbm -fzv: sgj -glv: nnc bzc -lff: ntq vmp nsg xmd -nhf: frl sps czq xsm -tqj: sbt hkq rcn -qjq: rmp -dfc: mgr ptq -mzr: tdq sgz -gsl: vfd tmd ssf dtk xmz -zdd: glm -tmv: xrf vhp cqq svx -zjk: sct tct xfc -gsb: tzp rqm sgx lvn -tzv: svg lhk bcq chl rhp -ccr: xmd mml vlk -vrf: qhg lgk lpz bhd -tsr: xql -zbn: hdx -fxk: dlz sht hsr -qnp: dgq -mfq: mbf vtn hfz mxr -rfx: sbj njj rjf slr zzt -nds: hzn -jdh: bqj nzs tbn ztt -cgr: mxn mpp -vjf: zcf qtf -tpk: xgm rbg frz gdz -qmx: czp gnl lpz bpd -xkj: ffj -xlh: dxr lqh zrz -zqk: njr sqz ldj ppt xsb -lrb: jcc ndd mbf -kcj: xql nmc -dmh: npb kxm nqp lzn -nlx: mpd fxb txt pmt -xql: nhg -fsq: cqt krp sfl -kqf: jph hpp vrj lvj -npc: hfb gll zcg dgc -scj: lnq -vgq: sbj -nnn: kqs dbn -rmt: hnq ttd vts kvk -pqc: ldj zlr kxb mfs -tcn: znt krp prx szc -pjf: jzq tgg svx psb -gmj: mff dbn -rct: qxd zdg cmh xxq -dqc: vck gnt -vgc: qls xvj bkr -vnr: mrg bsp -lsl: czp ddr -ffd: sdl mkc tjs -fht: vrt sfn pxj rxd -dtg: tlb gmm bkz -vvn: ndt klq spr cts ccj -kdl: vdn kfs sgq -cbn: hzn kxb hdx -xhc: drk czp mzf rxl -sfp: bgn bqv -ckc: xxq kjx tjz qjq lvb qqt -jzq: pcm gkd -xns: ttz xrm -cvp: kjx tjs ggj ttt -ghf: vfc xvp rgt scm qfv -tcx: kzk mfx -qnx: nsg kcr zxl -nmx: psb rff cbk pxk -dkv: vgf szh mbj fbp -mfv: vjr -jzz: hfp rsr -kvb: pcm bhh -qcm: kps -lvn: zbh -sgz: fdl -gnx: zqp lzm ckc -rrn: gfj vqs xfq -hpn: vnz vxr tcg dhr xrm -xcp: vsx pvl fkn jsg -crc: grk lhs vld dpg -xbk: ngp -vpf: jbr -qfj: xkt -mxn: gmk -ltm: tdn kjk qcl -qtj: rsh nrp zmx -clr: pht -nfc: kcq -tvf: rhp lgd -vvq: grt xvc jxv jjf -njk: sht bxj ptq vgq -xdz: ztj rgr zpr lqv -mpq: qfj fjb lxk mvn vhp -gxt: srb xvp tzg -gnf: jvk vbx -kcp: ktp -gvd: gjq zlg mxl pxx txn -vpm: zdf lrr rmb lmg -ztf: fst bcf qnv sdv ndd -lrz: csn xmh dxl -qmv: qqm brh qdk mcs kkx jrj -nzh: mml -tsp: njr -frz: fgx nrf -fhj: gmk kgx -lfp: kcr bgc xnk -dpx: sls zdf bml -kbp: zlr vlp zkp sjk -bqk: znv vfq zcv rpb ctf -plz: rsm cfn -pns: qzz rhn phl qdv mrc pxl cmq -mvb: nmc htd -lzm: btv zpf -ftn: lgd rbk -qqs: dxx vnl lpt vfc -tcq: qtk jsn -nkq: knc vhq xgv fhn -pvp: tbb vdn zvc -xzt: ddn nnm -grt: szc -pdp: fgq scj hjl jlk -fhr: jgh ndn -glm: jrk -fqj: ztz jlv jgl -rmp: drk gnf -njj: tsp hzn rqm -jms: tjs qqj vln fnv -hlm: qjq txt dbr jph pvl vck -tzz: ftz csr zpk -dpc: cvh -msr: hjc xmk -xzj: vxf lhk kpx srv tng -sxd: kns bhd fnv -ksb: ntl bxg jjv zpr sbt -jtr: vrx szm tcp bcl -kfp: dsj sch sfl zlr -klr: dkr -bpg: ksk jvk qls chl tkj -hnn: ntc svg sgq lqv -pgj: bjg szb -rfj: kvm zsd clr lkn -fjb: pjx -nps: bjm mfz njk srb -vkf: vgz tqh tbb -lpz: hss ndn -jlb: pkl vln rnz lgx -zdg: jgs dgx -gnz: lvp grt -csr: trv -rtt: xrf ddn csb -fst: ffj qtj -qgj: sfq btv -bts: nhg gxz nhx dxl -fpg: scj ddn nrp -qpd: rxr gmk kmr -jsf: fbp smh htv bpd -mcs: lqf lhk -hss: xkf jgs -tlj: rmm jlg ccs xbq -hbh: xsd mgx slm xlh -bnr: krp bls pcl -sct: hnq -ccp: zrr ffx scf vnf -ffr: fdl -trg: qrr -vrt: bcl -glj: bqk lvn -pgn: xjt skn kxk gcq xbk -qkm: knb vjr glm -rnz: mzb rxb -ttt: pfm hgl tvg cqm -hjb: pdq gqk stz vjt -gqj: mzb -bgn: qhg -pbc: fvb rdt -nxh: pzd xqd czg xzl -fnx: shv gkd mgr -rpd: jcb -nsx: ctp rzj -lqv: bxg dqc -jcg: ppt -fvd: scn lgk prb blr -zmt: xsd vxk -pdg: pxk mfv gkd xvc bsp -sdl: qdt tvg jlj ntz -kvm: trg -rgr: kfl mxn -tzb: qcl fcn pcc -thb: dpf dkb dms -vjj: vhj -zxc: hhd sjh fhr rcn -ldv: ntc hpk pmq zxc lgz rxv -lrn: vdz lhk pdq qqj -kmm: vhp lnx gpm smr xtg -bgc: sxd sgs -nfq: fmt ffv qcb -vrx: srj bgx -vzj: skv hsr mfv czn -dcm: srv xkl -lfb: vvl mgx jbm plz -mzn: qcd sqz -mds: dhk fpl -bbj: kfs tkr zjf thb -qmn: fqd bct mkq cdp ftn -kpm: pfc htz -vzx: brs -pfc: vpp dqb hjp -hvs: stk xlq zhh czl -mrq: rkv -vsx: fmc sjz -bjm: mxh bzz qkm vgh zbn nck -fth: rsd bjh csr dvp rqn -lfd: gcq -mxr: csb mzn vjs -hcj: lvp nds gzm -lrr: jlt lzn -xgh: dcm lbp -rmn: lxs xlq jtz kqs -rmk: tsf -dpm: jbh zhh -mtr: zbn csn -ntf: bgn lrn -thl: hjc gkd jxv sgx rfm -hnc: hgv -hjj: vnp sfq vhg xgh jrm -fhn: vrx vpf -skn: rzv -kss: vgq fpg ghn xtk -tdq: tmg -htz: fdx vfq lhx -ctp: vhg bll -fgq: sgx sgj -cbv: sjp ztt nds gcf -kvf: xml -pfr: hvd zpr -bsp: csn -szh: ttz -ccc: dvk cqm dpf gck -ltv: gfx -rph: scj ztk nck -skz: xzl jqj vnp -khd: npr -mpd: gkv pjd drp -kgm: crx hpt fsb kvf fsq -tbg: zrz -rgq: mcj nfp kpm lcx -lqf: vgx bjg -zlp: kvk kpx lss -nck: btx -gcp: rgt jrk -pbl: ftz qxd -klq: kbg sqk sjk vhj -gbr: prd bkn -lmd: kgr pnv trg -jgb: zkn jmb -rmb: mhc lgd jbh +53906 14872 +35867 86182 +61313 43656 +23620 85315 +96434 90834 +70853 80045 +81024 46279 +74096 30947 +95143 21374 +58372 72621 +31935 12389 +49854 67579 +86609 43656 +89364 63407 +74266 14457 +52098 88395 +96964 96234 +49393 18203 +50534 68865 +15769 46056 +80451 31396 +74551 38740 +91700 86211 +93090 21692 +17501 34796 +16736 15045 +46056 37224 +75968 93912 +97701 75324 +28685 71207 +51195 28531 +74109 81902 +61906 30947 +61901 26456 +27949 31935 +80781 31935 +45869 63848 +76250 91948 +92161 88896 +92901 95050 +84135 56554 +36445 85108 +91602 50652 +14229 42099 +26675 53544 +31839 80370 +79535 80370 +36655 21828 +68093 10740 +49052 30403 +38777 87413 +10824 94461 +38968 80370 +63083 81902 +95411 55634 +69727 81902 +93596 70536 +52663 31396 +65999 68564 +59890 40680 +66226 43656 +94707 13595 +13899 79022 +25283 66901 +79946 33564 +80152 25915 +78359 38273 +28675 78207 +51401 24017 +21022 36263 +96272 97201 +22693 27307 +21648 97487 +46178 97979 +17466 60051 +82661 25915 +39775 93045 +48681 60562 +47199 86686 +30660 85874 +18285 69937 +55428 50228 +98906 13151 +86638 57318 +48728 66727 +78268 80222 +32191 18625 +75544 96995 +38692 27814 +51182 72597 +24564 14872 +78193 43656 +14830 98087 +51013 91047 +40389 62018 +80648 34735 +25915 48415 +75278 30947 +73740 76891 +47851 63741 +30743 93960 +30074 81716 +47127 31935 +66658 14609 +81404 13612 +78838 34796 +98988 56858 +61023 95843 +44069 79751 +58419 22373 +88253 33943 +10357 68564 +65647 75968 +56636 49814 +96378 30947 +61167 62569 +34557 37250 +64400 55670 +51614 31935 +12364 73721 +71834 63350 +11214 15293 +84197 67580 +46279 19369 +85435 25099 +87320 40454 +28341 16142 +65983 71345 +94333 79356 +66873 33981 +50771 31396 +91221 54646 +63742 34796 +99770 46279 +37731 80045 +20432 21157 +39263 76136 +99080 56687 +29242 32173 +93843 46279 +53850 18085 +68835 75005 +43354 40124 +48317 29974 +89326 97201 +75434 22373 +70473 25915 +63394 48255 +38016 68564 +78812 80045 +93261 58244 +20014 64971 +11924 11780 +21157 53840 +24802 89474 +55997 38754 +87219 25915 +20988 14872 +39639 28428 +29464 51586 +61672 78802 +96734 65594 +55764 14925 +52658 49815 +66306 81902 +19417 81326 +20305 17693 +33337 15419 +58435 11780 +88271 55426 +72760 70448 +62171 41784 +35420 75968 +85791 80045 +86874 28578 +47942 65464 +65982 43656 +54647 80045 +76794 72117 +71733 56858 +99560 97201 +57741 48255 +19684 38234 +82201 34796 +56598 81902 +78671 30403 +57520 81902 +28794 80045 +70718 36673 +12894 89585 +80420 88896 +75179 80045 +37527 94333 +68865 89708 +54484 70184 +22482 90992 +28787 99580 +23380 50228 +24819 34018 +23039 26417 +34777 30403 +38089 98258 +40091 90301 +65391 81902 +64984 88288 +47803 19170 +54239 23050 +89439 35940 +64104 15601 +42956 50228 +60123 42357 +62887 87025 +50719 56858 +60551 40959 +32730 73652 +80253 80045 +31948 19369 +33170 19369 +43380 88896 +66465 54668 +68963 25915 +74433 40124 +42272 11349 +45882 51505 +62636 26196 +97266 11220 +23083 96587 +27358 76569 +44481 81623 +11314 30728 +64712 57329 +95360 81902 +43100 83387 +22699 72297 +95680 57279 +12170 30947 +51297 59853 +48255 49975 +23355 34796 +55264 96834 +43234 95736 +58663 66937 +24467 93318 +31569 39898 +91720 37056 +17395 97253 +87456 68460 +61344 13591 +50316 50228 +50313 82900 +33328 41831 +70391 98955 +40124 13612 +80337 21838 +66151 17628 +14932 57871 +34464 48255 +18164 70338 +84969 14872 +30898 68564 +76526 11873 +41007 43656 +46997 52069 +74614 79205 +97267 80045 +13525 56858 +83587 23900 +70678 51307 +96613 20308 +39592 31396 +44365 91747 +44840 87970 +99891 90134 +58567 33972 +58851 43402 +87728 30403 +84786 37227 +13329 32507 +93229 90123 +43915 54511 +83982 27814 +19567 88896 +33979 87294 +40170 43656 +97852 48739 +45928 94736 +74935 28466 +97730 84011 +74826 95244 +68208 24359 +53130 92198 +41725 78978 +57089 11780 +98073 35872 +23652 11780 +97201 41849 +87155 71818 +88640 79810 +37745 21157 +14056 18175 +95658 56858 +48755 94333 +13619 45286 +81792 43656 +78244 31396 +30595 45955 +84035 95996 +60013 20192 +30544 13612 +94649 59748 +12343 75968 +37130 68564 +89486 25915 +30879 45350 +82252 76332 +72035 81326 +96757 39307 +12935 22093 +76836 96648 +13035 65492 +64394 56858 +68916 43656 +81474 31396 +90650 28126 +56290 94702 +35758 56672 +58825 41199 +55904 89015 +39969 10888 +45804 80699 +39063 33732 +71312 14949 +98164 36727 +83970 87031 +63860 15740 +19008 80045 +36342 59349 +75519 71974 +70509 49833 +15393 80714 +98995 85760 +80265 80370 +95001 42793 +28863 71880 +65186 59896 +91417 37319 +18213 74991 +46598 73652 +17350 56836 +77732 24742 +43239 96665 +91884 73652 +98023 17915 +30603 81326 +50132 72240 +14657 26301 +89888 46056 +29239 11140 +33269 80370 +86498 43609 +32323 18944 +87234 14483 +91312 84354 +55972 28052 +95671 44209 +47556 94712 +64231 92523 +40010 52869 +78889 65874 +65672 11780 +66829 27274 +58976 23077 +52684 99212 +12106 78809 +40894 79813 +73516 30403 +98758 90245 +78558 81135 +91842 43656 +36111 56858 +81902 57457 +57016 15315 +62322 31642 +12386 91620 +46583 57818 +16653 33234 +90664 13612 +99386 20422 +53504 20328 +88729 68564 +33262 89807 +22996 31396 +49944 21157 +71217 57474 +89409 93464 +81592 54135 +98029 75431 +54437 89337 +73652 85178 +44888 25915 +16495 94354 +20340 30974 +69933 86157 +23100 19122 +27337 71603 +81726 94579 +36381 80370 +13641 39385 +93685 32550 +73502 76018 +95815 49303 +26455 31396 +89509 94333 +43369 60492 +78840 66925 +84665 19369 +27145 30682 +20548 34796 +51087 84227 +24544 89081 +72048 57058 +70432 19369 +66825 40124 +30189 35430 +87176 89952 +69550 68440 +52304 27404 +22031 76800 +41939 80370 +30725 67957 +71537 22373 +53526 66477 +65213 20836 +51028 68564 +87427 46945 +18856 88896 +12027 68564 +28641 39589 +49464 72751 +15977 74910 +58898 75990 +39039 62184 +67691 57314 +60850 49736 +13012 48255 +84069 97201 +32568 68865 +96125 34796 +25181 74948 +73744 43656 +56977 21157 +80745 22716 +68012 34796 +47755 48255 +78533 29915 +23621 68865 +11353 43088 +84311 18978 +88935 20794 +54337 87927 +62396 46248 +83685 15158 +13519 40474 +89345 94333 +91712 56672 +54787 22373 +41442 19369 +57095 49689 +73305 68074 +40222 34796 +18020 22841 +62794 75878 +26368 14901 +11475 40124 +75682 74145 +75582 80370 +97642 80045 +43518 31396 +61262 14872 +65073 35575 +64250 41578 +41393 43656 +43735 59876 +52143 68865 +20553 52835 +88338 81503 +92669 68564 +97752 18898 +30830 94320 +13583 13612 +34097 54600 +95952 66295 +20902 68564 +35750 86876 +79359 57300 +19583 43538 +77422 21157 +63966 88896 +25403 57385 +71523 94333 +93579 11780 +35074 68865 +75840 48255 +44626 47096 +72438 60433 +54577 68564 +66690 56858 +41197 40124 +13612 30497 +25465 86662 +55920 78165 +89969 67123 +58286 70389 +43656 97260 +82249 43755 +30657 96171 +39157 31396 +18894 32478 +11955 10307 +43927 43656 +16920 50228 +29478 94333 +77022 17632 +33574 30653 +52142 59421 +43400 58568 +20918 21157 +59754 48255 +54975 74539 +45684 99214 +70895 33500 +68461 80541 +96575 26109 +39266 97201 +85211 31396 +62831 13612 +58008 89741 +52256 30403 +67407 31396 +11485 36725 +73476 43656 +28411 20566 +58997 24742 +50228 94333 +22731 49787 +60317 31396 +50387 56858 +47125 76520 +32596 40699 +86041 60374 +17153 93396 +47001 97796 +95064 33317 +60020 31715 +97079 13537 +95911 97201 +42771 30403 +31218 94333 +58019 68797 +27090 34796 +42716 89943 +13624 67333 +14872 41803 +15763 99088 +59386 71716 +29342 81287 +85955 37265 +92842 20523 +84757 75968 +76051 41922 +27595 46689 +74249 81347 +76224 97201 +46211 43561 +16434 31396 +95096 74640 +65042 56672 +89918 56858 +57601 94333 +45468 11780 +38812 25915 +51266 55991 +90185 75968 +75344 13612 +68758 50890 +54439 97201 +49138 21157 +72447 14872 +24656 40124 +94875 22613 +22373 43361 +44518 10761 +43686 60879 +32501 92097 +42849 13612 +96366 97201 +97664 18585 +75951 45638 +87742 55727 +26127 90094 +49148 29249 +44880 27199 +48351 34429 +49769 19369 +53310 31313 +97615 97700 +44217 70925 +35613 84873 +37774 33414 +37902 67163 +20513 31396 +22058 11456 +69695 43656 +12676 43656 +78546 44430 +93366 88781 +43779 79593 +42156 94062 +26825 30947 +61551 58309 +79992 80045 +70690 92191 +60303 33345 +47232 40844 +27958 75524 +65137 43403 +81422 88896 +90350 36543 +82498 21157 +34184 84567 +49629 78699 +52046 74192 +68564 51586 +74624 88896 +84055 35652 +78176 24112 +19369 81326 +29606 25074 +56381 25915 +41549 94333 +98646 77958 +10620 49796 +71804 80045 +70094 21157 +22047 43771 +26955 75968 +20916 46087 +70578 37746 +31396 85745 +38677 76047 +51586 80370 +33206 98673 +40909 76255 +86670 80370 +71335 29711 +90443 51586 +76017 23086 +64608 80370 +46749 24742 +89544 43543 +41857 46279 +42787 58205 +73907 67100 +62371 14872 +24918 98011 +51056 79598 +39721 34796 +67175 25915 +30403 36271 +64135 11780 +76994 78902 +66535 15092 +59032 94333 +75831 31184 +30096 11447 +23350 36783 +59712 31994 +38953 28778 +60226 50228 +82255 72338 +36348 68865 +76999 31396 +10164 31710 +15946 18029 +77511 30248 +95601 35450 +18152 49627 +32771 25915 +20404 31396 +61545 46279 +34285 87463 +84576 40124 +51878 51586 +88769 21515 +63200 81326 +68855 28497 +65595 53032 +48751 33285 +60205 88896 +96460 11367 +89979 80045 +11820 22373 +83877 11780 +20276 40124 +19438 81902 +94604 22373 +14247 67536 +89516 18681 +44165 80045 +58766 24742 +11456 26306 +11021 89613 +55218 59490 +74173 22743 +46876 80459 +63558 31935 +64004 24611 +72949 68564 +57103 62092 +95565 68564 +16875 38769 +81532 62587 +15150 22210 +74559 88896 +62813 61861 +29326 13612 +81512 68564 +49315 98827 +76486 25915 +42556 26135 +72818 52964 +24550 43656 +64689 70406 +73254 19265 +93699 68564 +53060 87046 +93009 81902 +39670 67615 +61036 67631 +45671 40413 +41312 80045 +49132 81902 +38018 91922 +71072 75073 +22869 27664 +55057 27814 +24941 27959 +84686 71679 +28947 74369 +25665 57496 +78778 23305 +14626 64462 +37342 43855 +59900 22416 +43285 98392 +92065 90613 +20557 68564 +45377 56858 +14449 55097 +97504 57790 +53508 80370 +39463 40124 +40767 68564 +64115 84078 +57015 38612 +10790 11780 +39059 48255 +97687 23054 +80185 40124 +42697 21344 +84512 30568 +88890 60974 +26625 25773 +23057 60654 +86691 40392 +19977 27723 +20885 35230 +82396 92827 +95747 20497 +70767 19369 +36646 58544 +55189 97285 +88283 66161 +61823 88896 +81975 98911 +96120 58310 +27584 13612 +29777 93381 +83851 81326 +68499 14896 +71570 80045 +83910 33934 +72510 19369 +29704 53243 +58042 94333 +10666 66744 +25477 38332 +46516 71338 +11780 81760 +60016 44454 +76061 88896 +45171 42137 +16022 31396 +43064 80370 +74174 94333 +75767 10987 +94834 41861 +43884 25498 +73079 82486 +49817 93178 +84945 88121 +37442 68004 +75204 52912 +88344 57580 +78701 55148 +79748 40124 +74272 34796 +32505 73879 +74004 40075 +97970 88796 +43969 81902 +34338 27951 +56706 51586 +70683 13612 +51351 41678 +15913 56236 +34587 11780 +27138 92114 +81477 85239 +37366 34453 +15828 68865 +29715 56858 +97538 80370 +16406 55594 +68956 18077 +21846 88896 +76758 36425 +59057 25915 +43840 82650 +67201 41066 +49427 70257 +41187 14872 +36754 24495 +23374 47449 +39822 68865 +66021 70536 +42652 43243 +24842 88896 +24280 24742 +88867 28631 +89241 86694 +23591 62627 +59260 48813 +50605 28489 +24330 84536 +25882 80024 +35776 62926 +54141 50228 +75680 40124 +84399 31530 +78265 80370 +87750 13922 +36091 75968 +27814 53359 +63430 34796 +63140 85215 +81319 68564 +89693 56300 +44939 86165 +78937 88896 +34287 57052 +60288 22373 +39738 97201 +66981 15143 +93466 85978 +43980 23335 +50378 24498 +65798 80045 +33048 70536 +74858 51594 +41614 26882 +78108 87082 +95851 39538 +55294 27347 +91809 51930 +18352 94333 +92466 41921 +20367 84778 +94765 21872 +70536 59326 +83561 73432 +80370 31935 +70474 44396 +96303 44391 +12398 89041 +23108 25947 +53083 21157 +99161 24742 +85566 15007 +32257 68564 +46065 50230 +63630 14872 +42636 97201 +94467 24904 +62773 20111 +56672 21157 +25886 30403 +13184 92058 +24742 94333 +69268 31396 +22434 77346 +12984 76178 +27117 43656 +10754 57124 +24873 75979 +39306 25915 +68234 84487 +17427 40124 +97952 20994 +33373 94333 +76327 14493 +45608 30947 +48367 22373 +54606 71965 +24726 25915 +10736 35060 +13367 53242 +95178 56815 +27296 56858 +68391 64705 +98563 38903 +20841 80370 +20931 11515 +60534 73652 +44041 90593 +39264 69166 +12510 77382 +65091 14872 +73605 78383 +43630 50005 +80045 78823 +17857 66318 +71065 13612 +67686 73652 +40016 11780 +96408 29692 +34507 81902 +10576 22373 +62967 92940 +68474 80370 +67663 49384 +27217 70536 +45444 94221 +16316 80370 +53563 68564 +76310 56858 +56858 69426 +96287 30104 +80543 29117 +82061 84323 +44833 20029 +58023 41150 +93209 56858 +19697 60022 +53393 23230 +97156 56858 +13069 63002 +72142 31122 +57137 49844 +48483 38592 +72970 69357 +93043 25915 +56792 15463 +73491 80370 +95205 30947 +84502 92854 +50655 31935 +81326 86245 +30947 21547 +81476 73108 +54995 86542 +88684 80659 +16695 77477 +67522 17661 +14444 24717 +48169 93182 +77304 62773 +10022 22838 +85352 68865 +88896 34807 +80571 21157 +75090 87473 +45429 57148 +38945 91244 +70349 21157 +13113 56858 +34796 40124 +32195 49176 +28292 57181 +14969 84572 diff --git a/src/main.rs b/src/main.rs index cd815fb..1e553a3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,182 +1,109 @@ #![allow( confusable_idents, uncommon_codepoints, + non_upper_case_globals, internal_features, mixed_script_confusables, + static_mut_refs, incomplete_features )] #![feature( slice_swap_unchecked, generic_const_exprs, + iter_array_chunks, + get_many_mut, maybe_uninit_uninit_array, - inline_const, - slice_flatten, iter_collect_into, let_chains, anonymous_lifetime_in_impl_trait, - unchecked_math, array_windows, slice_take, test, slice_as_chunks, array_chunks, slice_split_once, - core_intrinsics, - byte_slice_trim_ascii + core_intrinsics )] extern crate test; pub mod util; +use atools::prelude::*; +use hinted::HintExt; pub use util::prelude::*; +fn p1(i: &str) -> impl Display { + static mut a: [i32; 1000] = [0; 1000]; + static mut b: [i32; 1000] = [0; 1000]; -pub struct Graph { - pub v: usize, - pub edges: Vec<(usize, usize)>, -} - -pub struct UnionFind { - p: Vec<usize>, - s: Vec<usize>, -} - -impl UnionFind { - pub fn new(size: usize) -> Self { - Self { - s: vec![1; size], - p: (0..size).collect(), - } - } - - fn reset(&mut self) { - self.s.fill(1); - self.p - .iter_mut() - .enumerate() - .for_each(|(idx, val)| *val = idx); - } + let i = i.as_bytes(); + unsafe { + for n in 0..1000 { + let i = C! { &i[n * 14..] }; + let n1 = reading::八( + u64::from_le_bytes(util::nail(C! { &i[..8] })) << 24 | (0x3030303030303030 & !24), + ) as i32; + let n2 = reading::八(u64::from_le_bytes(util::nail(C! { &i[5..]}))) as i32; - pub fn find(&mut self, key: usize) -> usize { - if self.p[key] == key { - return key; + *a.get_unchecked_mut(n) = n1; + *b.get_unchecked_mut(n) = n2; } - let parent = self.find(self.p[key]); - self.p[key] = parent; - parent - } - - pub fn union(&mut self, a: usize, b: usize) -> bool { - let α = self.find(a); - let β = self.find(b); - if α == β { - return false; - } - let a = self.s[α]; - let b = self.s[β]; - if a >= b { - self.s[α] += b; - self.p[β] = α; - } else { - self.s[β] += a; - self.p[α] = β; - } - true - } - - fn group_size(&self, group: usize) -> usize { - self.s[group] + radsort::sort(&mut a); + radsort::sort(&mut b); + a.iter() + .copied() + .zip(b) + .map(|(x, y)| (x - y).abs()) + .sum::<i32>() } } -pub fn karg(graph: &Graph) -> Option<usize> { - let mut v = graph.v; - let mut s = UnionFind::new(v); - while v > 2 { - let i = rand::limit::u64(graph.edges.len() as u64); - let α = s.find(graph.edges[i.nat()].0); - let β = s.find(graph.edges[i.nat()].1); - if α == β { - continue; - } - v -= 1; - s.union(α, β); - } - - let chop = graph - .edges - .iter() - .filter(|&&(src, dest)| s.find(src) != s.find(dest)) - .count(); - - if chop == 3 { - let root = s.find(0); - let size = s.group_size(root); - return Some((graph.v - size) * size); - } - None -} +pub fn run(i: &str) -> impl Display { + static mut a: [u32; 1000] = [0; 1000]; + static mut map: [u32; 100000] = [0; 100000]; + let i = i.as_bytes(); -fn base26([a, b, c]: [u8; 3]) -> u32 { - a.widen().widen() + b.widen().widen() * 26 + c.widen().widen() * 26 * 26 -} + unsafe { + let x = C! { &i[..14] }; + let (x, y) = (reading::all(&x[0..5]), reading::all::<u32>(&x[8..13])); + *a.get_unchecked_mut(0) = x; + *map.get_unchecked_mut(y as usize) += 1; -pub fn run(i: &str) -> impl Display { - let mut z = 0; - let mut n = HashMap::new(); - let mut e: HashMap<u32, HashSet<u32>> = HashMap::new(); - i.行() - .map(|x| { - let (k, v) = x - .μ(':') - .mr(|x| { - x.split(|&x| x == b' ') - .map(<[u8]>::trim_ascii) - .filter(|x| !x.is_empty()) - .map(|x| base26(x.try_into().unwrap())) - .collect_vec() - }) - .ml(<[u8]>::trim_ascii) - .ml(|x| base26(x.try_into().unwrap())); - match n.entry(k) { - Entry::Occupied(_) => {} - Entry::Vacant(x) => { - x.insert(z); - z += 1; - } - } - for j in v { - match e.entry(k) { - Entry::Occupied(x) => { - x.into_mut().insert(j); - } - Entry::Vacant(x) => { - x.insert(HashSet::from_iter([j])); - } - } - match n.entry(j) { - Entry::Occupied(_) => {} - Entry::Vacant(x) => { - x.insert(z); - z += 1; - } - } - } - }) - .Θ(); - let mut edges = vec![]; - for (from, to) in e { - for to in to { - edges.push((n[&from], n[&to])); - } - } - let g = Graph { edges, v: z }; - loop { - if let Some(x) = karg(&g) { - return x; + for n in 1..1000 { + let x = util::reading::八( + u64::from_le_bytes(util::nail::<8>(i.get_unchecked(n * 14 - 3..))) + & 0xffffffffff000000, + ); + let y = util::reading::八(u64::from_le_bytes(util::nail::<8>( + i.get_unchecked(n * 14 + 5..), + ))); + *a.get_unchecked_mut(n) = x as u32; + *map.get_unchecked_mut(y as usize) += 1; } + a.iter() + .copied() + .map(|x| x * map.get_unchecked(x as usize)) + .sum::<u32>() } + + // let (mut a, b) = i + // .行() + // .map(|x| x.κ::<u32>().carr().tuple()) + // .collect::<(Vec<_>, Vec<u32>)>(); + // let mut map = HashMap::<u32, u32>::default(); + // for elem in b { + // map.entry(elem).and_modify(|x| *x += 1).or_insert(1); + // } + // a.sort_unstable(); + // a.iter().map(|x| x * map.get(x).unwrap_or(&0)).sum::<u32>() } fn main() { - let i = include_str!("inp.txt").trim(); + // let mut s = String::new(); + // for i in 0..1280 { + let i = include_str!("inp.txt"); + // s.push_str(i); + // } + // std::fs::write("src/inp.txt", s); + println!("{}", p1(i)); + // println!("{}", experiment(i)); println!("{}", run(i)); } @@ -185,3 +112,9 @@ fn bench(b: &mut test::Bencher) { let i = boxd(include_str!("inp.txt").trim()); b.iter(|| run(i)); } + +#[bench] +fn bench2(b: &mut test::Bencher) { + let i = boxd(include_str!("inp.txt").trim()); + b.iter(|| p1(i)); +} diff --git a/src/util.rs b/src/util.rs index 9170742..ad87491 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,10 +1,13 @@ #![allow(non_snake_case, unused_macros)] + +use rustc_hash::FxHashMap as HashMap; +use rustc_hash::FxHashSet as HashSet; use std::{ cmp::Reverse, - collections::{hash_map::Entry, BinaryHeap, HashMap, HashSet}, + collections::{hash_map::Entry, BinaryHeap}, fmt::{Debug, Display, Write}, hash::Hash, - mem::{swap, MaybeUninit}, + mem::swap, ops::RangeInclusive, str::FromStr, }; @@ -13,17 +16,19 @@ pub mod prelude { #[allow(unused_imports)] pub(crate) use super::{bits, dang, leek, mat, shucks, C}; pub use super::{ - even, gcd, gt, l, lcm, lt, pa, r, rand, sort, Dir, FilterBy, FilterBy3, GreekTools, - IntoCombinations, IntoLines, IterͶ, NumTupleIterTools, ParseIter, Printable, Push, Skip, - TakeLine, Trunc, TupleIterTools2, TupleIterTools2R, TupleIterTools3, TupleUtils, - UnifiedTupleUtils, UnsoundUtilities, Widen, 読む, 読む::Ext, Ͷ, Α, Κ, Λ, Μ, + even, gcd, gt, l, lcm, lt, pa, r, rand, reading, reading::Ext, sort, Dir, FilterBy, + FilterBy3, GreekTools, IntoCombinations, IntoLines, IterͶ, NumTupleIterTools, ParseIter, + Printable, Skip, TakeLine, TupleIterTools2, TupleIterTools2R, TupleIterTools3, TupleUtils, + UnifiedTupleUtils, UnsoundUtilities, Widen, Ͷ, Α, Κ, Λ, Μ, }; pub use itertools::izip; pub use itertools::Itertools; + pub use rustc_hash::FxHashMap as HashMap; + pub use rustc_hash::FxHashSet as HashSet; pub use std::{ cmp::Ordering::*, cmp::{max, min}, - collections::{hash_map::Entry, HashMap, HashSet, VecDeque}, + collections::{hash_map::Entry, VecDeque}, fmt::{Debug, Display}, hint::black_box as boxd, io::{self, Read, Write}, @@ -227,7 +232,7 @@ where { pub fn new(f: F) -> Self { Self { - 0: HashMap::new(), + 0: HashMap::default(), 1: f, } } @@ -263,6 +268,8 @@ pub fn countg<N: Debug + PartialEq + Hash + Eq + Copy, I: Iterator<Item = N>>( } } +// pub fn appearances(x: ) + pub fn iterg<N: Debug + Copy, I: Iterator<Item = N>>( start: N, graph: &mut impl Fn(N) -> I, @@ -283,7 +290,7 @@ pub fn show<N: Debug + Eq + Hash + Copy + Ord, I: Iterator<Item = (N, u16)>, D: name: impl Fn(N) -> D, ) { println!("digraph {{"); - let mut s = HashSet::new(); + let mut s = HashSet::default(); let mut q = BinaryHeap::new(); q.push(Reverse((0, start))); while let Some(Reverse((c, n))) = q.pop() { @@ -314,7 +321,7 @@ pub fn dijkstra_h<N: Debug + Eq + Hash + Copy + Ord, I: Iterator<Item = (N, u16) h: impl Fn(N) -> u16, ) -> u16 { let mut q = BinaryHeap::new(); - let mut s = HashSet::new(); + let mut s = HashSet::default(); q.push(Reverse((h(start), 0, start))); while let Some(Reverse((_, c, n))) = q.pop() { if end(n) { @@ -339,7 +346,7 @@ pub fn dijkstra<N: Debug + Eq + Hash + Copy + Ord, I: Iterator<Item = (N, u16)>> end: impl Fn(N) -> bool, ) -> u16 { let mut q = BinaryHeap::new(); - let mut s = HashSet::new(); + let mut s = HashSet::default(); q.push(Reverse((0, start))); while let Some(Reverse((c, n))) = q.pop() { if end(n) { @@ -480,7 +487,7 @@ impl Λ for &str { panic!( "{e}: {self} should parse into {}", std::any::type_name::<T>() - ); + ) } } } @@ -593,6 +600,12 @@ impl PartialEq<RangeInclusive<u16>> for Ronge { } impl Ronge { + pub fn sane(self) -> bool { + self.end >= self.begin + } + pub fn checked_len(self) -> Option<u16> { + self.sane().then(|| self.len()) + } pub fn len(self) -> u16 { self.end - self.begin } @@ -838,7 +851,6 @@ pub trait GreekTools<T>: Iterator { fn ι1<N>(&mut self) -> impl Iterator<Item = (T, N)> where Self: Ι<T, N>; - fn Ν<const N: usize>(&mut self) -> [T; N]; fn ν<const N: usize>(&mut self, into: &mut [T; N]) -> usize; fn Θ(&mut self); } @@ -882,7 +894,37 @@ macro_rules! ι { ι!(u64); ι!(usize); -pub mod 読む { +pub fn nail<const N: usize>(x: &[u8]) -> [u8; N] { + unsafe { (x.as_ptr() as *const [u8; N]).read() } +} + +pub mod reading { + #[inline] + pub fn 八(n: u64) -> u64 { + // reinterpret as u64 ("92233721" => 92233721) + // let n = u64::from_le_bytes(s); + // combine 4 pairs of single digits: + // split pieces into odd and even + // 1_7_3_2_ (le repr) + // _2_3_2_9 + // then combine + // _21_37_23_92 (le repr, each byte as 2 digits) + let n = ((n & 0x0f000f000f000f00) >> 8) + ((n & 0x000f000f000f000f) * 10); + // combine 2 pairs of 2 digits: + // split again + // _21___23__ + // ___37___92 + // then combine + // __14|137__36|7 (le repr, pipes separating bytes) + let n = ((n & 0x00ff000000ff0000) >> 16) + ((n & 0x000000ff000000ff) * 100); + // combine pair of 4 digits + // split again + // __14|137____ (then moved to ______14|137, as u64:3721) + // ______36|07 (as u64: 9223) + // then combine + ((n & 0x0000ffff00000000) >> 32) + ((n & 0x000000000000ffff) * 10000) + } + use std::{ io::{self, Read}, ops::{Add, BitOrAssign, Shl}, @@ -1024,7 +1066,7 @@ pub mod 読む { } } - pub fn 完了< + pub fn all< T: Default + std::ops::Mul<T, Output = T> + Add<T, Output = T> + From<u8> + Copy + Ten, >( x: &[u8], @@ -1047,20 +1089,6 @@ impl<T, I: Iterator<Item = T>> GreekTools<T> for I { self.next().α() } - #[cfg_attr(debug_assertions, track_caller)] - fn Ν<const N: usize>(&mut self) -> [T; N] { - let mut array: [MaybeUninit<Self::Item>; N] = - // SAFETY: mu likes this - unsafe { MaybeUninit::uninit().assume_init() }; - - for i in 0..array.len() { - array[i].write(self.Δ()); - } - - // SAFETY: init - array.map(|elem| unsafe { elem.assume_init() }) - } - fn ν<const N: usize>(&mut self, into: &mut [T; N]) -> usize { let mut set = 0; for e in into { @@ -1178,21 +1206,6 @@ macro_rules! bits { } pub(crate) use bits; -#[test] -fn do_bits() { - let mut bitset = 0u128; - bits!(bitset + 5); - assert!(bits!(bitset[5])); - bits!(bitset ! 5); - assert!(!bits!(bitset[5])); - bits!(bitset ! 5); - assert!(bits!(bitset[5])); - bits!(bitset - 5); - assert!(!bits!(bitset[5])); - bits!(bitset[4] = true); - assert!(bits!(bitset[4])); -} - pub struct Lines<'a> { bytes: &'a [u8], } @@ -1207,6 +1220,13 @@ impl<'a> Iterator for Lines<'a> { impl<'a> std::iter::FusedIterator for Lines<'a> {} +impl<'a> DoubleEndedIterator for Lines<'a> { + #[inline] + fn next_back(&mut self) -> Option<Self::Item> { + self.bytes.take_backline() + } +} + pub trait IntoLines { fn 行(&self) -> Lines<'_>; } @@ -1283,17 +1303,14 @@ pub fn sort<T: Ord>(mut x: Vec<T>) -> Vec<T> { pub trait TakeLine<'b> { fn take_line<'a>(&'a mut self) -> Option<&'b [u8]>; + fn take_backline<'a>(&'a mut self) -> Option<&'b [u8]>; } impl<'b> TakeLine<'b> for &'b [u8] { fn take_line<'a>(&'a mut self) -> Option<&'b [u8]> { match memchr::memchr(b'\n', self) { None if self.is_empty() => None, - None => { - let line = *self; - *self = b""; - Some(line) - } + None => Some(std::mem::replace(self, b"")), Some(end) => { let line = &self[..end]; *self = &self[end + 1..]; @@ -1301,17 +1318,25 @@ impl<'b> TakeLine<'b> for &'b [u8] { } } } + + fn take_backline<'a>(&'a mut self) -> Option<&'b [u8]> { + let end = self.len().checked_sub(1)?; + match memchr::memrchr(b'\n', &self[..end]) { + None => Some(std::mem::replace(self, b"")), + Some(end) => { + let line = &self[end + 1..]; + *self = &self[..end]; + Some(line) + } + } + } } impl<'b> TakeLine<'b> for &'b str { fn take_line<'a>(&'a mut self) -> Option<&'b [u8]> { match memchr::memchr(b'\n', self.as_bytes()) { None if self.is_empty() => None, - None => { - let line = self.as_bytes(); - *self = ""; - Some(line) - } + None => Some(std::mem::replace(self, "").as_bytes()), Some(end) => { let line = self[..end].as_bytes(); *self = &self[end + 1..]; @@ -1319,6 +1344,18 @@ impl<'b> TakeLine<'b> for &'b str { } } } + + fn take_backline<'a>(&'a mut self) -> Option<&'b [u8]> { + let end = self.len().checked_sub(1)?; + match memchr::memrchr(b'\n', &self.as_bytes()[..end]) { + None => Some(std::mem::replace(self, "").as_bytes()), + Some(end) => { + let line = &self[end + 1..]; + *self = &self[..end]; + Some(line.as_bytes()) + } + } + } } pub trait IntoCombinations<T: Copy>: Iterator { @@ -1361,34 +1398,6 @@ impl Skip for &str { } } -pub trait Trunc<T, const N: usize> { - /// it does `a[..a.len() - 1].try_into().unwrap()`. - fn trunc(&self) -> [T; N - 1]; -} - -impl<const N: usize, T: Copy> Trunc<T, N> for [T; N] { - fn trunc(&self) -> [T; N - 1] { - self[..N - 1].try_into().unwrap() - } -} - -pub trait Push<T, const N: usize> { - fn and(self, and: T) -> [T; N + 1]; -} - -impl<const N: usize, T> Push<T, N> for [T; N] { - fn and(self, and: T) -> [T; N + 1] { - let mut iter = self.into_iter().chain(std::iter::once(and)); - std::array::from_fn(|_| iter.next().unwrap()) - } -} - -impl<T> Push<T, 1> for T { - fn and(self, and: T) -> [T; 2] { - [self, and] - } -} - /// WYRAND based rng's pub mod rand { /// WYRAND |