Submission #65264193


Source Code Expand

Copy
/*
` ` `
` ` ``` ` .... ` ` `` ````` `
` `..JyQQHkmHWHQgHHWXaJ-. `
```` .-HHkMMMM@HMMMHHNH@HkWWma&-.` `
` `..WHH@MMMMMM#MMHMMNWHmgMHMNMMHHHk..``
` `` .dHHHMMMM@MMMMMMNKMMMMMHHmWWHHMHHHHe. ```
` ` ` .JHMHMMMMMMMMMHHMMMNMHMHHMMHHmHMqHHWWH+
`` .HNHHHMNM#HMMHHWHHHHHHMMM@HHHHHHHHWHNHkHHh.`
` `` (WMMNWMMMMMHHHNqHMM@H@HMM@HHHM@HMHMHMHgkHHh.` `
` ` (WHMHMHHHMHM@MHHMHHMMHHMHHMHH@MH@HHMHNWHHkgHb
` ` ` .HHMMHHHMMMHMMMMMHMNHMMMHWHHMgHHWHHH@MHHHHkHMH;``
` .H@HMMM#HM@@MHHHHHMMMMHHHMmqkHbkHHMHMHH@MkHmHHMg.`
` .HHHMMHMHHWMHpWHqHH@MM@KWMMWbHHqMkWUkHHMM@HMHHHg[
` ` ` N@MMH#MH0XXHHkWWHXWM@HHkXWHWWHHWWZyWHqMMMMH@NMH)
` MHHM#MMWwtOwUmR0zOCvWHHMkXWXXSWWWRZUVHHM@MMMHHH:`
` `WMMHH@MkwllOwH01?>;;<zOwWHZzVOOwwXv1OZWWMMMMH@H `
``,MMHHHMH0O=zZI==>;;:::<<<1z11juAQkkmsOwwXMMMHmS.
` ` ` HMMMMMSOz=1=z&zzz+++;;;;1zwXpWWUUUZOC1<zWMHN0O_` `
` ` WMM@HH0tOdkWkkHWWWXz+<;;1lOOwAgga&z+1<;+dHMKtl:``
` (HM@HNZOUWU0Ov1zzzttOz<<=zwwIdH9wV0Z1?>>+dHWZ+~
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/*
`  `                     `
` ` ``` `  .... ` ` `` ````` `
`                                                `..JyQQHkmHWHQgHHWXaJ-.   `
```` .-HHkMMMM@HMMMHHNH@HkWWma&-.` `
`  `..WHH@MMMMMM#MMHMMNWHmgMHMNMMHHHk..``
`                                                   `` .dHHHMMMM@MMMMMMNKMMMMMHHmWWHHMHHHHe. ```
`                                  `   ` .JHMHMMMMMMMMMHHMMMNMHMHHMMHHmHMqHHWWH+
`` .HNHHHMNM#HMMHHWHHHHHHMMM@HHHHHHHHWHNHkHHh.`
`    `` (WMMNWMMMMMHHHNqHMM@H@HMM@HHHM@HMHMHMHgkHHh.` `
`  ` (WHMHMHHHMHM@MHHMHHMMHHMHHMHH@MH@HHMHNWHHkgHb
`            `                                  ` .HHMMHHHMMMHMMMMMHMNHMMMHWHHMgHHWHHH@MHHHHkHMH;``
`   .H@HMMM#HM@@MHHHHHMMMMHHHMmqkHbkHHMHMHH@MkHmHHMg.`
`  .HHHMMHMHHWMHpWHqHH@MM@KWMMWbHHqMkWUkHHMM@HMHHHg[
`            `                                  ` N@MMH#MH0XXHHkWWHXWM@HHkXWHWWHHWWZyWHqMMMMH@NMH)
`    MHHM#MMWwtOwUmR0zOCvWHHMkXWXXSWWWRZUVHHM@MMMHHH:`
`  `WMMHH@MkwllOwH01?>;;<zOwWHZzVOOwwXv1OZWWMMMMH@H `
``,MMHHHMH0O=zZI==>;;:::<<<1z11juAQkkmsOwwXMMMHmS.
`            `                               `     HMMMMMSOz=1=z&zzz+++;;;;1zwXpWWUUUZOC1<zWMHN0O_`  `
`  ` WMM@HH0tOdkWkkHWWWXz+<;;1lOOwAgga&z+1<;+dHMKtl:``
` (HM@HNZOUWU0Ov1zzzttOz<<=zwwIdH9wV0Z1?>>+dHWZ+~
`            `                                      jHMHNZlztlwyWMH@OXkwI<<=OOOrtlz1+?>;>;><dk0z<`
.XHMM0l=zwWUZOI=zOOwZz<1=?<<>>>><;;;;;><dKz+~ `
`   ztXMR=zl=zOllz<<+=tO<>????><;;;;:;;><><OC;!
` `.1ZHHz====<<><<?1=lz<:;<?=1<><<:::;;>?<v<!`  `
`            `                                      `  <wWHz=??>;;;;>1Oz1<:::::<1>><;;;;<>??!
` (zdS==??>;;;+zO=lz<;+u&zz+?=zx<;????_  `
` 1zvzlz1+>+zlwUWWAwXwwOwXwwwwI;<??=!
`            `                                       `  `  `.tOtOz=OwXXyXXOUVCCzIOOwwXC;+?=1` `
` `      jrrOz1XWWWXOOOv1v?<Id6zzrz+=??<`
 ` .OwtwzvUwVUSXz&+zzOtI?+zwz=1?==
 ` `.OrOXOOwzOrtlz++?=????zVO=?===_  `  `
`            `                                                ` uwOXwkOtlOOwOZZI?<?+zwwzz==?+_`   `
`   ``.wwwdWkO=l==z1=???>?1wuOI=??1_` `
 ```.K__TkXpywzzz=1zIz?11zww01????z_`(,``
`            `                                             ` .MN/~~~7WHWkXwOwVwOltwvOOI??>??>   Mx   `
`  `           .###N/~~_?OUWWyXwwXwkUOv==>??>?j! ` (MNa, ` `
`` ````````` .d#HHH#N,~~~_<+zOVWkZXwO==?????11}     dM@@@HmJ...```````` ``
`   `  `  `    ` ...  ` .&HHMMHHH##Hp_~_.~~<<<<?TXXOl=====zC     `(M@@@@g@g@H@mg....`      `  `
`            `                  `  `` ```...(gMMMMMNadHHHMHHHHHHH#HHN,~.._...`._--?7zzzlzZ` `    .@@@@@gggggggggggHHHa..``  `
`  `   `   ..(dqmgg@HHMB"YMHHMHHH@HH@HHHH##HMe......`.-___. ?OwC` .,.` ` W@@@@@gggggggggggg@gg@gm+, `  `` `
` `..(gW@ggggg@g@@#3(__~?MHH@HHHH@H@HHHHHHMHm_ . ..MN&-(+(-(C~ .MMMo. `(M@@@@@@gg@ggggmgmggggggg@gHa-.  ``
`            `           ` ..MH@@@@@ggg@@@@#Y<>>_:~(M#HHHHHHHHHHHHHHHHHHN, `.MMMMNaga&J.+MMB11OX, .M@H@@@g@gggggggggmggg@gggggggmHHa., `
`  `.M@H@@@@@@@@@g@@8<+<:::::<_TMMB"""TMMHHH@@HHH@MMx JvvM#MMHgMHHH#C~~_~<1I.W@@g@@ggg@@gg@ggggmgggggmmmmggggHH@h.
``` jM@H@@H@MHHHHM@@MI>??+<<::_<-_.~-__..`_?7WMH@HHHHM2~<_(ZMMH@HHMM%~_..~~_(?dM@gg@@@@@g@gg@gggggggggggggg@ggg@H@N ``
`(@MH@@H@MMMM@Hg@@M<<<??zOVI<~~_.__<:_...~_~dHHH@@HHN, __<1TMHMgHM--_   _.~_dM@@ggg@@g@ggggggggmmgggg@ggggg@@M@@M)
`            `        `.M@@@HMHHMM#MMMMMHD::;;<<1???++<<____(___:_(dHHHHH@@HN.  ..?OWHMHM/ .  ```~(dM@@@ggg@@gggg@MMggggggggg@H@@g@@@@@@b
(@HMgHMMMMMMMNHHM#<:;;;:;;;;;;<;::~:::<-.-_jHHH@H@@HHMb` .~~_(MMMNH,.   ` _~dMM@@@@ggg@@@HMMMggggggg@@g@gg@g@@@@@M;`
`dMHMMMNNNN#MMM#MMNc:;;;;;;;;<~::__((+?C+_-_WMHH@@@@H@MM;`_~~_JMHM#NHh.` ` ` JM@g@g@gg@ggHMMM@ggggggggggggg@g@HM@@@N.
`            `         HMHN#MM@@HHHHHHM#=(<>>>>>>;<+11+11<<:~~jaJ(M@@@@HH@@@HHb  ~~(M@HHMNNbH.` ` `(M@@ggg@@gggggg@@@@@gg@gggg@ggg@@H@@@MM]
.MMMHMHMMM@H@HHH3.0+>;<::~::::::::;<;:~~(HHH@MH@H@@@HHH@M-`_(HHHHHMM#Mkh     (M@@@gg@gg@gggg@gg@@gg@gggg@@g@g@H@@@@@N.
`XMHHHMMMMMHkH#~d81z;;<:::::::::~~:__(((HHH@@@@H@@@H@@@HHb`.dMMHHHMMMMHH[`   ,M@@@g@ggg@g@g@gggggg@gg@gggggg@@H@@H@@ML `` ``
`  ` MHMMHHbHWmH#`JHC?=z>>;<:::;:<<<<<<<<<:dH@@H@@@H@H@@H@H@N_.MHMq@MMHHMHqN.` .,M@@@g@@gg@@@@@@@@gg@@@@g@gggg@HMM@@@H@@H;`
`            `        ` MMHHkWHg@@HD`M$;+=z>>><<::::::::::::~(d@H@H@H@@H@@H@@@HM[JH@Hqg@HHHHgqM) ``,MMHg@ggg@ggggg@gg@gMMg@gg@gggg@MM@@@@@@@N.   `
`` .JHgHMHHH@@@@MF`WI;:>+?<>;:~~:~~~~~_(J+gHH@@H@@HH@@@@@@@H@@Nd@MmqggqbbHHqHb` `,M@@gggg@g@ggg@g@g@@@@@gg@g@@gg@MH@H@@@@@@b   `
.MgH@MHH@@@@@@M% .k_:(<>+>?>;:~~_(dM@@HHMMHH@@@@@@@H@HH@H@H@HHHgqqmmqkbkqHgN.`.,M@@@gg@ggg@@ggggggHM@@ggg@@gg@M#H@@H@@@@@@[`
`            ` `` .dMH@@MH@@@@@@@MMI_ (Xs++<;;::::_(+M@@@@@@HMM@H@H@@@H@@@H@@@H@@@HmqmqqkkkkqkHM;  (MH@ggg@@gg@gggggggMM@@@gggg@@@MHH@@@@@@@@@N `
`.dMHMHHMM@@@@@@MMMZ<_  ~<?77T"^` (NNM@@@gggM@MMMH@HH@@@@@@@@@@HHHHkkqqqkkkqkkqM]  (M@@ggggggg@@ggg@g@H@@gg@@g@g@@MH@H@@H@@@@@M[ `
`  `                          dHM@MHHM@@@@@@@gMHNz__ `  `_.` -jNNNM@@@ggggH@MM@@@@H@HHH@@@@H@@HNqHqkkqqkkqqqH@` (MM@@gggg@g@ggg@ggMM@@@@g@@@ggHMH@@@H@@@@@@@N
`   `                       `.MHM@HHM@H@@@@@@gMMNI<<___. ` _(dMNN#H@@@@@gg@@@MMHH@@@@@H@@H@@H@@MHkkqkkqqqqkqHM. (#M@g@ggggggggggg@H@@@@g@g@@@@MMHH@@@@@@H@@gM[
`              `,MHMMHH@@@H@g@@gHMM#Rz+++-___(zdNN#NMH@@@@g@gg@@@MM@H@@H@@HH@@H@HH@qqkkqkqkkkqqmM; (#@@gggggggggg@ggHM@g@g@gg@@@ggMMHH@@HH@@@@H@N
` ZH@@HH@HH@@g@@HHM#HNwz=+>++wXHN###NMHM@@@@@@@g@@HMMH@@HH@@@@H@@@@HHkqqqqkqqqqHmM[ (MM@gggg@gggg@g@gH@M@@@@@@@@@@gMHH@HH@@@@@@gMM-`
`                            ` 4M@HH@H@@@HWHHHMNHMI1OwwXUUXM##H##MHHH@@@@@g@g@@@MMH@@@H@H@@@@@@@MqqqqqqHkqqqmHL`(M@@@g@gggggggg@MMM@@@@@@@@@@@gMHH@@H@@@@H@HHH]  `
`            `     4MH@Hg@@HHgHHMMMHM$(dWQQmgMNN#H#HHHHH@@@@@g@@@MMMMM@H@@H@H@@@@H@Mqqqqqqqqqqqqgb-.MM@ggg@gg@@@@@@@@@g@@@@@@@@@g@MHHH@@HHM@@@@gMb `
WMHHHHHggkQHHMM@HHZXM#N##N###HMMHHHHH@@@@@g@@@@@MHH@H@H@@@@@@H@@qqqmmmqqkqqqHN_.HHg@gggg@gggg@@@gg@g@@@@@@@@@gM#H@HH@H@@@@@@HN
.M@HMqHgHHmggmHHMMHMHM#NN##M@MM##HHHHH@@@@@g@g@@@M#HM@@H@@@@@@H@mqmgHmqqkqmmHM:.dMM@@@g@g@gggHMg@@@@@gg@@@@@ggM#H@@HH@HH@@@@@M-`
`  7HMHqgmkqqqmmkpHMM@@HHMMMM#####HHHHHH@@@@@@@@@@@HHM@@@@@@@@@@HHqqgHmqqqqmqHMI_dM@@g@ggggggg@@@@@@@@@g@@g@@@@M#HH@@HM@@@@@@@M] `
`            `        ``?WgmmmqqqmqqqkbkbbbWHMNN####HHHHHH@@@@@@@@@@@@@MMM@@ggH@@@@MMqmmmqqkqqmqHM$<dM@@g@g@@gggH@@@@@g@@@@@@g@@@g@#HHHH@HH@H@@@@@]
` `                                 ` ?THmHmqqkqkkbWHHMHM#NH####HHHHH@H@@@@@@@@@@@@MMHMgg@@@@@@MmmmmqqqkmgqqMD:JM@@@ggggggg@@@@@@@@@@@@@@@@@@@#M@HH@HHH@@H@@H[`
`   `~!!!OHHHM#HMN##HH#HHHHHHHH@H@@M@@@g@@@@@@MMMgg@@@@HMmggmqqkqmgmmMb<JMM@g@gggggMM@@g@@@g@@@@@@@@@@gMHH@@HH@H@@@H@@b`
`                                    .MHMN#H#NHMHHH###HHHHHH@@@@@@@@g@@@@@@MMMHgg@@@HgmmmqqkqmgmqMb>j#H@@gggg@HH@@@g@g@@@@@@@@@@@@gMHHH@H@@@H@@@@@M-`
`  `                     `                     ` `(MNNMMM##MH#HH#H#HHH@HH@HH@@@gg@@@@@@gHMMM@@@@MHggmqkkqqggqM#++MM@@ggggHMHM@gg@g@@@@@@@@@@@@gMHHH@HHHHH@@H@@HL
TMMM#MHMHH##HHHHHHH@@@@@@@@@@g@g@@@@@M#NM@@@HHg@gqkkqkmmHHN>>MH@gggggMHMM@@gg@@@@@@@@@@@@g@MHHH@H@HHHH@@@@@N. `
` .MMMHHMH#H#H#HHHHH@H@@@@@@@@@g@g@gg@@MNNM@@@M@ggqqqkqqqqHN>;dHM@gggM#HH@@@g@g@g@@@@@@@@ggHM#HH@HHH@H@@@@H@M[
`  `         `                                         dMHMMMHH###H#HHHHH@@@H@@@@ggg@@g@@@@H#NNM@H@ggHkqqqqkqmHMz;dMH@ggMHHH@@@@@@@@@@g@@@@@@@@gM#HHHHH@@HH@@@@HM@
`                            .MHHMMHHH#H###HHH@H@H@@@@@@@@@@@@@@@M###NM@@@gqqkkqqqmHgMv>JMH@gM#HHH@H@@@@g@ggg@@@@@@@@@M#HHH@H@HH@@@@@@@M- `
(MMMMHHH#HHHHHHHH@@H@@@@@@g@@@@@@@@M###NNMHggmqkkkqggmHMI>JMMHMMHHH@@@@@@@gg@@@@@@@@@@@gHNHHHH@H@@H@@H@@@@p `
`                                         ` (MM@HHH#HHH#HHHHH@@@@@@@@@@@@@@H@HMHH###NMMgmqkkkHggqHMP>+MHHMHHH@H@@@@@@@Hg@@@g@@@@@ggHN#HH@HHHHM@@@@@@@b  `
`                            `` .MM@HHHH#HHHHHH@@H@@@@@@@@@@@H@@HMHHHHH#NMgmqqkqmgmmHMb><MMHH@H@H@H@@@@g@@@g@@H@@@@@g@@##HHHHHHHHHH@@@@@N
JHHHH#HH#HHHHHMH@@H@@@@@@@@@@@@@MHH#H##NHgqkbkqH@mqHMb>1dMH@HHH@@@H@H@@g@ggg@g@@@g@@gg##HHHHHHHHH@H@HH@H[`
`.MHHHMHHH#HHH@H@@@@@@@@@@@HH@H@@MH#MMMM#MgqkkkqmmgmmM#<>dHMH@HHMHH@@H@@@@@@@g@g@@@@gg@##HMHHHMM@@@@@@@@HN.`
`                                             .HHHHHH#HHHHM@@@H@@@@H@@@@@@H@@@HMMWkkHMMmkkkkqggmmmM#??dMHH@@@@HH@H@@@@@g@@@ggg@@@@ggMN#HMH@@@@HHH@@@@@M]
`                                .@HHHHHHHHHHHH@H@@@H@@@H@H@@@H@H@MNHkWMM@qkkkqqm@mqmHN??dH@H@HH@@@H@@H@@@@@@@@g@@@@@gH####HHMMM@gg@@@@@@M]
`J@HHHHHHHHHH@@@@@@H@@@H@@@@H@@H@@HMHHMMMmkkqqqmmgmqmHHz+dMH@@@H@H@@H@@@@@@@@g@@@g@@@ggNN#NNNN##MMHg@@@@@@]`
`                                         `   d@HHHHHHHHHHH@H@H@@@@@@@@H@@@@H@@@H@HHMmqqkkkqqggmqmHMI=dHMH@H@@@HHH@@H@@@@g@@gg@g@@g@NNN#NN#####M@@@@@@@b
`                               .H@@HHHHHHHHH@H@@@@H@@H@@H@@H@H@@H@@@HHHqqqqkkqkggqqqHMr+zMMH@H@@@@@HH@@@@@@@@@@@@ggggHNNNN######HM@H@@H@@N
` `.M@HH@H@HHH@H@@H@@@@@H@@@@H@@H@@@@@HH@MqqqkkkkqmHmqqmgMP<1WH@H@@@H@@@H@@@@@@@@@@@@g@@gHNNNN##H#HHHH@@H@@HHH[` `
`  (@@H@@HH@H@HH@H@@@@@@@@@@@@@@@@H@@@@HHMkkqkkkmqmgmqqqmMb(1dMH@@@@@HH@HH@@@@@@@@@@@@gggMNNN#HMH@@HHHH@@H@@H@N, `
`                                          ` W@@@@HHHHHHH@H@@@H@H@@@@@H@@@@H@@@H@@MHkqkkkkqqmgmqkqgH#(1vM@@H@@@@@H@@H@@@@@@@@gg@gggMN##HHHHMHHHHHHM@@@@HHN`
`                            ` .M@@@H@@HH@H@MH@@H@@@@@H@@@@@@H@@H@@@#dHqkkkkkHggmqqkqq@N~<=W@@@@@@@H@HH@H@@@@g@@@@g@@gMN##HHHHHHHHHHMH@@@@@HM|`  `
J@@@@H@@H@H@H@@H@H@@H@@@@@@@@@@@@@@HM%JHkkkkkqmgqqkkqqqHM<(+dMHH@@@H@HH@H@@@@g@gg@@@gggMNN#MMMMMHHHHH@HHHHH@H@b`
`                                         `.H@@@@HH@@HH@H@@@@@H@@@@@@@@H@@@MHHHM# JHqqkkkHmmqkqqkqmgM;_<zMHHH@H@MHH@HH@H@@@g@ggg@ggMNNNNMM@ggM@HHHHHHHM@@@M_
`                         `  `(@@@@H@HH@@@H@H@@@H@@@@@@H@@@@@@HMMWH].(NqkkkbqqqkqkqkqmgMr~(+dH@@@@@M@@HHHH@H@@@@g@gg@@@MNNNN##MMMH@g@MM@g@@@HF`  `
.MH@@@@@@@HH@@H@H@@@@@@@@@@@@@@@@MMHMH%.(MqkkkbqqqqqkkqmmHH]~(<dMM@@@H@@H@@@@H@@H@g@@@@gM@@MNN######HHHMHMH@g@@M``
`` `.MH@@H@H@@H@H@@@@@@H@@H@@@@@@@@@@MHMMD._(MqkkbpkkkkkqkHqqqm@_:;1M@@@@@@@@@@@@@@@@@@@g@ggM@gM#N###HH#HHHH##H@@@@M<
`                                       `.HH@@@M@H@H@H@H@@H@@@@@@@@H@@@@@@@@@HMl--(NqkbbpppppbkkqqqqmHqMMMMH@@@@@H@@H@HH@H@@@@g@@HHMH@MNN##HH####HM@@@@@HHb`  `
`                         ` JM@H@@@@@H@@@@@H@@H@@@@@@@@@@@@@@@@@@MN#MHNbkbbbbbbkkkkqqkkHHHNNNNM@@@@H@@H@@H@@H@@@@@ggMHMMMMMMMHHHMMMM@@@@@H@HHN_
`.WHH@MM@@@H@H@@@@H@@H@@H@M@H@@@@@@@@@@MNNN#NbkHkHkqqqqqqqqqqgHHMNNNM@@H@@@HH@HHH@H@@@g@g@MHMg@gMMMMMNNN#N###HHH@@HHr
`                                       .@H@@@@@@@@H@HH@@H@@@@@@@HH@H@@@@@@@@MNNN#MNHbbpkkqkqmqkqHqHMM@MNNNNM@@@@H@@H@@HH@@@@@@@@MHM@ggMMNMMHHMMMM##HHHHHHMN
`                       `  dMH@M@@@@H@H@@@@H@@@@@@@@@@@@@@@@@@@@MNNNMMMMMHkbbHWkbkkHHHMHMHWMMMNNMM@@@@@HH@@@HHH@@@@gMHM@ggHHgMMMMHgg@@@@MH##HM#   `
`.@HHH@@@@M@H@@@H@@@@@@@H@@H@@@@@H@@@@@NM#HNNNNHHNUHbHpbkqHNNMNN#N#N#NNM@@@@@HHHHHHHH@@@@g@MM@@gmMMMHggMMMHMH@@HH@@MM%
`   JMH@@@@@@@H@HH@@H@H@@H@@@@@H@H@H@@@@@MN#HHHHHHHHMNMNWpbHM#NHHHH#H####NNM@@@@M@HH@H@HH@@@@H#H@@@@MNNMMgggMHHHM@@HH@MF`
`                                     .H@H@@@@@@@@@@HH@@H@@@@@@@@@@@@@@H@@@@N#H#HHHHHHHHHH##NNM#HMHHHHHHHHH##NNM@@@@@@H@HH@H@@@HH#HH@@@HMN#HMHggMMMM@@MHH#
`                     `` .@HH@@@@@@@HH@@@@@@@@@@@@@H@@@@HMMMM@M##HHHHHHHHHHHHHHHMHHH#H@@H@H@HHH##NM@@HMH@HHH@H@H@@@M#HHHHH@M@@@H@@ggmM@MMHMM\ `
` dMM@@@@@@@@H@H@@@H@@@@@@@@@@@@H@MWkHqM##HHHHHHHH@H@H@HHHH@HMH@@HHH@HHHH#NNM@@@@HHHHH@H@H@@M#HHMHHHHHH@H@@@@ggH@HMHF
`                                    .HMHH@H@@g@@HH@H@H@@@@@@@@@@@@@@MNHHWW##HHHHHHHHH@HH@H@@HHHHHM@@H@HH@HHHH#NNM@H@@H@MHHHHHH@MHHHHHHHHH@HH@@H@@@ggMM@
`                 `   ``(@@@@H@@@@@@@@@@@@H@@@@@@@@@@@@@@MMMM###HHHHHHHHHH@H@H@H@HH@MM@HHH@H@@HHHH##NM@HH@HMH@@H@@@@@@MMHMHHHHHHHH@H@@Hg@M[`
W@HH@@@@g@@HHHH@HH@@@@@@@H@@@@@@@@@@M##HHHHH@HHHHHH@HH@HH@HHHM@@@H@HH@@HHHH##MM@H@HH@HH@HHH@@@ggMMMMHH@@M@H@@@@H@M\
`   .M@HH@@@@@@@@@@@H@@H@@H@@@@@@@@@@@@@@HH#HHHHHHHHH@H@H@@H@H@HHHMH@H@HH@HHHHHHH#N#M@H@@@H@H@@@@@@@@gggg@@@@@g@@@@@@@M;
`                                  `JH@@H@@@@@H@H@@@H@@@@@@@@@@@@g@gg@@gMH##HHHH@HHHHHHHHHH@@@H@HMM@@HH@@HHH@H@HHH##MM@@H@@H@@@H@@@@@@@@gggggg@gg@@@@@HN.
`                     `dMHH@H@@@@@H@H@H@@H@@@@@@@@@@g@@@@gH##HHHHH@H@HHHH@@HH@@@HH@@HMH@@H@HH@HH@HHHHH##NMH@HH@H@H@H@@H@@@@@@@@ggggg@@@@H@HL``
H@@H@@@@@@@@H@@H@@@H@H@@@@@@@@@@@@MMH#HHHHHHHHHHHHHH@HHH@@HH@H#H@H@HHH@@HHHHHHHH###M@@H@@H@@@@H@@@H@@@@@@@@@@@@@@@@MN  `
`                                  .@@H@@@@gg@@H@@H@H@@@@@@H@@H@@@@@@@MNHHH#HHH@@HHHHHHHH@HH@@@HMH#M@@H@@HHH@H@HHHHHHH#NMH@@H@@@@@H@@H@@@H@@@@@@@@@@H@MMN_
`                 ` ` (MMH@H@@@@@@@HHH@@H@@H@@@@@@@@@@@@MNNHHHHHHHH@@HHHHHH@H@@HH@@@H#M@@@H@@HHHH@@HH@HHHHMNMM@@H@@@H@@@@@@@@@@@@@@@@@@H@@H# `
`  d@@@@@@@@@@@@H@@H@@H@@@@H@@@@@@@@HM#NMHHH@H@@HHHHHHH@HHH@HH@@@HMM@@@HH@H@H@HHH@HHHHHHH#NM@@H@@@H@H@H@@@H@@H@@H@MH@H@H%  `
` H@@HH@@@@@@HH@H@@HH@H@H@@@@@@@@@@M#NNMH@HHHMH@HHHHHHH@H@H@HH@@@MM@@H@HH@HH@H@HH@@HHHHH#MNM@HH@@@H@@@H@@@H@@@@H@@@@HH#
`                               ` .M@@H@@@@@@@@H@@H@H@H@H@H@@@@@@@gM##NNMMHHHH@HHH@HHHHH@H@H@@H@@@HMH@@@@H@@HH@@@HMH@@HHHHH##MMHHH@@@@H@H@@@@@H@@H@@H@M'
`                  ` J@@@@@@@@@@@@HH@H@@@@H@@@@H@@@@@MM###NM@H@H@@H@H@HHH@HH@H@HHH@H@@#@@@HHHH@HH@H@HHHH@H@HHHHHH#MH@HHHH@@@H@H@@@H@@H@HHF
` d@@@H@@@@@@H@@@H@H@H@@@@@@@@@@@@M##H##N@HH@HH@HHHHHH@HH@HH@HH@H@@HHH@@H@H@@@HHH@H@HH@H@@HHHHHHMM@H@H@@H@@H@H@H@@@HM#``
`                                .@@@H@@@@@@@@HH@@H@H@H@@H@@@@@@@M#H###NNH@HHH@HHHHHHHH@H@@H@@@H@H@M@@H@HH@HHH@@HH@H@@HHHH@@HHHHHMNM@HH@HHH@@H@@HH@HM'` `
`              `   `jM@@@@@@@@@@H@@HH@H@H@HH@@H@@H@M###H#H#NMH@@H@@MH@H@@HHHH@HHHH@@@HM@@@@MHH@HH@@@@HHH@@H@@MH@HHHHHMNNM@HH@@HH@@@H@@M%
`  .H@@@@@@@@@@@H@@H@HHM@H@@@@@@@@M#HHHH####M@HH@H@@HHHHMMHHHHHHH@HH@@MHH@@HH@H@@HHH@@H@@HHHHHH@HH@@@@HHHMM@H@@@HH@H@HF   `
,M@@@@@@H@@@@@HH@H@@H@@H@@H@@@M##HHH#HH#MM@HH@HH@HH@HHMHH@HH@@H@@H@MH@@H@@H@HH@H@HH@HH@@H@@HH@H@HH@H@HHHMM@@H@@@H@#     `
`                                W@@@@@@@@@@HH@H@H@H@H@@H@@H@MNHHHH#HHHHNMH@@H@H@HHHHHHHHHH@HH@HH@@#@@@H@@HH@H@H@@@H@H@@H@H@H@@H@HH@@@H@HHHM@H@H@M\`
`                  `.M@@@@H@M@@H@H@H@MH@HH@@@@@M##H##H#HHH###H@@HH@HMHHHHHHHHHH@H@@@H@MH@H@@@@@H@@@H@@H@@HH@HHH@HH@H@@HHH@HMHHHHH@MM@
`.M@@@HH@M@@H@@H@@@H@H@H@@M####HHH#HH#H##@HH@H@@HHHHHHHHHHHH@H@@@HMHH@@H@@@HHH@H@H@@@@H@@H@@H@H@H@H@H@HH@HHH@H@D
`                               `  ?MMH@@@@H@HMH@HHH@H@@@MM##H#HHMHHHHHHHHH@@H@H@HHHH@HHHHHH@M@HH@@HH@@@@HH@H@H@@H@HH@H@HH@HH@@@HH@H@H@@@@H@@@@MD
`                  `  `?MH@@H@@H@@@H@@HH@H@HM###H#HHHHHHHHH##H@H@H@H@HHH@HHHHHHH@@@H@@HH@H@H@@H@@@HH@HH@HHHH@H@HH@H@@H@H@HHHH@@@@@HF
`.TM@@H@H@H@HH@@@H@MM##HHH#HHHHHMHHHHHM@@@@H@HHHHHHH#HH@@H@@@@@HM@@HH@HH@HH@HH@HHM@@@H@@@H@@HH@@H@@HH@H@H@@@]
.UHHH@H@H@@HHH@H#HH#HHH#HHHHHHHHH#HHH@HH@H@HHHHHHHHHHHMH@@H@H#M@@HH@@@H@HMH@H@HH@@H@HH@@H@H@HH@HH@HH@@@@@]`
`                                      ``.TMHH@@H@@H@MHH#HH#HH#HHHHHHHHHHHHH@H@H@HHHHHHHHHHH@@MH@@@HNH@H@@HH@@@@M@H@@@H@@@H@@H@HHHH@HH@H@@@H@@@H]
*/

#include<bits/stdc++.h>
#include <atcoder/all>
//#include <boost/multiprecision/cpp_int.hpp>
using namespace std;
using namespace atcoder;
#define FOR(i, a, b) for (ll i = (a); i <= (b); i++)
#define rep(i, n) FOR(i, 0, n - 1)
#define NREP(i, n) FOR(i, 1, n)
#define _GLIBCXX_DEBUG
using ll = long long;
using ui = uint64_t;
using pii = pair<int, int>;
using piii = pair<pii, pii>;
using pll = pair<ll, ll>;
using ull = unsigned long;
const ll INF = 1LL << 60;
const ll inf = 1LL << 50;
typedef complex<double> cd;
//const long long mod = 998244353;
//using mint = modint998244353;
using mint = modint1000000007;
//ll base = 998244353;

vector<int> di{1, 0, -1, 0};
vector<int> dj{0, 1, 0, -1};


template <typename T>
bool chmax(T &a, const T& b) {
if (a < b) {
a = b; 
return true;
}
return false;
}
template <typename T>
bool chmin(T &a, const T& b) {
if (a > b) {
a = b; 
return true;
}
return false;
}


/*struct Edge {
ll from;
ll to;
ll co;
};*/

struct S {
ll value;
ll idx;
};

ll op(ll a, ll b) { return max(a, b); }
S mapping(ll f, S x) { return {f+x.value, x.idx}; }
ll composition(ll f, ll g) { return f+g; }
ll id() { return 0; }
ll e() { return 0; }

struct SegTree{
    ll n;
    vector<ll> st;
    vector<bool> lz;
    SegTree(ll _n):n(_n),st(4*_n),lz(4*_n){}
    void push(ll p,ll l,ll r){
        if(!lz[p]) return;
        st[p]=0;
        if(l<r) lz[p*2]=lz[p*2+1]=1;
        lz[p]=0;
    }
    void upd_z(ll p,ll l,ll r,ll L,ll R){
        push(p,l,r);
        if(R<l||r<L) return;
        if(L<=l&&r<=R){lz[p]=1;push(p,l,r);return;}
        ll m=(l+r)/2;
        upd_z(p*2,l,m,L,R);
        upd_z(p*2+1,m+1,r,L,R);
        st[p]=st[p*2]+st[p*2+1];
    }
    void setp(ll p,ll l,ll r,ll i,ll v){
        push(p,l,r);
        if(l==r){st[p]=v;return;}
        ll m=(l+r)/2;
        if(i<=m) setp(p*2,l,m,i,v);
        else     setp(p*2+1,m+1,r,i,v);
        st[p]=st[p*2]+st[p*2+1];
    }
    ll qry(ll p,ll l,ll r,ll L,ll R){
        push(p,l,r);
        if(R<l||r<L) return 0;
        if(L<=l&&r<=R) return st[p];
        ll m=(l+r)/2;
        return qry(p*2,l,m,L,R)+qry(p*2+1,m+1,r,L,R);
    }
};

struct Trie{
    vector<array<ll,26>> ch;
    vector<bool> end;
    Trie(ll c=1){ch.assign(c,{});end.assign(c,0);rep(i,c)rep(d,26)ch[i][d]=-1;}
    ll newn(){ ll u=ch.size(); ch.emplace_back(); end.push_back(0); rep(d,26)ch[u][d]=-1; return u; }
};

int main(){
    ll q;cin>>q;
    vector<ll> t(q);
    vector<string> s(q);
    rep(i,q)cin>>t[i]>>s[i];

    vector<string> ylst;
    ylst.reserve(q);
    rep(i,q) if(t[i]==2) ylst.push_back(s[i]);

    Trie ytr(1);
    rep(i,ylst.size()){
        ll u=0;
        for(char c:ylst[i]){
            ll d=c-'a';
            if(ytr.ch[u][d]==-1) ytr.ch[u][d]=ytr.newn();
            u=ytr.ch[u][d];
        }
    }
    ll n=ytr.ch.size();
    vector<ll> tin(n), tout(n);
    ll tm=0;
    vector<pair<ll,ll>> stc;
    stc.reserve(n);
    stc.emplace_back(0,0);
    while(!stc.empty()){
        auto &pr=stc.back(); ll u=pr.first,&ci=pr.second;
        if(ci==0) tin[u]=tm++;
        if(ci<26){ ll v=ytr.ch[u][ci++]; if(v!=-1) stc.emplace_back(v,0); }
        else{ tout[u]=tm-1; stc.pop_back(); }
    }
    vector<ll> leaf;
    rep(i,q) if(t[i]==2){ ll u=0; for(char c:s[i]) u=ytr.ch[u][c-'a']; leaf.push_back(u); }

    SegTree seg(n);
    Trie xtr(1);
    ll ans=0, used=0;
    rep(i,q){
        if(t[i]==2){
            ll u=0; bool bad=0;
            for(char c:s[i]){
                if(xtr.end[u]){bad=1;break;}
                ll d=c-'a';
                if(xtr.ch[u][d]==-1){u=-1;break;}
                u=xtr.ch[u][d];
            }
            if(!bad&&u!=-1&&xtr.end[u]) bad=1;
            if(!bad){ ans++; seg.setp(1,0,n-1,tin[leaf[used]],1); }
            used++;
        } else {
            ll u=0;
            for(char c:s[i]){
                ll d=c-'a';
                if(xtr.ch[u][d]==-1) xtr.ch[u][d]=xtr.newn();
                u=xtr.ch[u][d];
            }
            xtr.end[u]=1;
            ll v=0; bool ok=1;
            for(char c:s[i]){
                ll d=c-'a';
                if(ytr.ch[v][d]==-1){ok=0;break;}
                v=ytr.ch[v][d];
            }
            if(ok){ ll c0=seg.qry(1,0,n-1,tin[v],tout[v]); if(c0){ ans-=c0; seg.upd_z(1,0,n-1,tin[v],tout[v]); }}
        }
        cout<<ans<<"\n";
    }
    return 0;
}

Submission Info

Submission Time
Task E - Forbidden Prefix
User po1
Language C++ 17 (gcc 12.2)
Score 0
Code Size 19326 Byte
Status RE
Exec Time 290 ms
Memory 165408 KiB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:139:41: warning: comparison of integer expressions of different signedness: ‘ll’ {aka ‘long long int’} and ‘std::vector<std::__cxx11::basic_string<char> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  139 | #define FOR(i, a, b) for (ll i = (a); i <= (b); i++)
      |                                         ^
Main.cpp:140:19: note: in expansion of macro ‘FOR’
  140 | #define rep(i, n) FOR(i, 0, n - 1)
      |                   ^~~
Main.cpp:251:5: note: in expansion of macro ‘rep’
  251 |     rep(i,ylst.size()){
      |     ^~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 2
AC × 28
WA × 25
RE × 4
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt, 02_handmade_06.txt, 02_handmade_07.txt, 02_handmade_08.txt, 02_handmade_09.txt, 02_handmade_10.txt, 02_handmade_11.txt, 02_handmade_12.txt, 02_handmade_13.txt, 02_handmade_14.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3436 KiB
00_sample_02.txt AC 1 ms 3644 KiB
01_random_01.txt AC 159 ms 130180 KiB
01_random_02.txt AC 160 ms 164276 KiB
01_random_03.txt AC 161 ms 165332 KiB
01_random_04.txt AC 144 ms 165408 KiB
01_random_05.txt AC 115 ms 132812 KiB
01_random_06.txt RE 290 ms 3944 KiB
01_random_07.txt AC 162 ms 129620 KiB
01_random_08.txt AC 157 ms 150416 KiB
01_random_09.txt WA 162 ms 158356 KiB
01_random_10.txt AC 146 ms 160332 KiB
01_random_11.txt AC 117 ms 135404 KiB
01_random_12.txt RE 168 ms 110832 KiB
01_random_13.txt AC 161 ms 127640 KiB
01_random_14.txt WA 107 ms 49588 KiB
01_random_15.txt WA 115 ms 55560 KiB
01_random_16.txt WA 114 ms 52100 KiB
01_random_17.txt WA 112 ms 89548 KiB
01_random_18.txt RE 140 ms 37692 KiB
01_random_19.txt AC 160 ms 136056 KiB
01_random_20.txt AC 168 ms 160624 KiB
01_random_21.txt AC 176 ms 153236 KiB
01_random_22.txt AC 164 ms 138864 KiB
01_random_23.txt AC 165 ms 124596 KiB
01_random_24.txt WA 123 ms 62572 KiB
01_random_25.txt WA 126 ms 74372 KiB
01_random_26.txt WA 126 ms 69952 KiB
01_random_27.txt WA 156 ms 115692 KiB
01_random_28.txt WA 121 ms 63876 KiB
01_random_29.txt WA 141 ms 99856 KiB
01_random_30.txt WA 129 ms 67112 KiB
01_random_31.txt WA 158 ms 115848 KiB
01_random_32.txt WA 121 ms 73956 KiB
01_random_33.txt WA 164 ms 123236 KiB
01_random_34.txt WA 137 ms 67944 KiB
01_random_35.txt WA 125 ms 77120 KiB
01_random_36.txt WA 126 ms 72812 KiB
01_random_37.txt WA 82 ms 27772 KiB
01_random_38.txt WA 104 ms 71828 KiB
01_random_39.txt AC 112 ms 87784 KiB
01_random_40.txt AC 139 ms 124952 KiB
01_random_41.txt AC 140 ms 132168 KiB
02_handmade_01.txt RE 80 ms 4200 KiB
02_handmade_02.txt AC 164 ms 137456 KiB
02_handmade_03.txt AC 54 ms 15152 KiB
02_handmade_04.txt WA 55 ms 15100 KiB
02_handmade_05.txt AC 16 ms 6020 KiB
02_handmade_06.txt WA 15 ms 5940 KiB
02_handmade_07.txt AC 11 ms 5016 KiB
02_handmade_08.txt WA 10 ms 5108 KiB
02_handmade_09.txt AC 15 ms 6336 KiB
02_handmade_10.txt WA 13 ms 6188 KiB
02_handmade_11.txt AC 43 ms 20524 KiB
02_handmade_12.txt WA 38 ms 20656 KiB
02_handmade_13.txt AC 154 ms 150392 KiB
02_handmade_14.txt AC 140 ms 150484 KiB


2025-07-02 (Wed)
22:50:32 +09:00