From e1ec9f33895ed9aa6d5de8bd29750b2b5e2674c9 Mon Sep 17 00:00:00 2001 From: subcrip Date: Tue, 18 Jun 2024 16:04:46 +0800 Subject: [PATCH] backup --- src/bin/a.cc | 6 +- src/bin/a.out | Bin 2308656 -> 2297336 bytes src/bin/b.cc | 19 +- src/bin/c.cc | 38 ++- src/bin/cf-1542d.cc | 583 +++++++++++++++++++++++++++++++++++ src/bin/cf-1556e.cc | 571 ++++++++++++++++++++++++++++++++++ src/bin/cf-1562d1.cc | 590 +++++++++++++++++++++++++++++++++++ src/bin/cf-1562d2.cc | 590 +++++++++++++++++++++++++++++++++++ src/bin/cf-1567e.cc | 714 +++++++++++++++++++++++++++++++++++++++++++ src/bin/cf-1580c.cc | 610 ++++++++++++++++++++++++++++++++++++ src/bin/cf-1592d.cc | 608 ++++++++++++++++++++++++++++++++++++ src/bin/cf-1594e1.cc | 565 ++++++++++++++++++++++++++++++++++ src/bin/cf-1594e2.cc | 623 +++++++++++++++++++++++++++++++++++++ src/bin/cf-1978a.cc | 531 ++++++++++++++++++++++++++++++++ src/bin/cf-1978b.cc | 534 ++++++++++++++++++++++++++++++++ src/bin/cf-1978c.cc | 555 +++++++++++++++++++++++++++++++++ src/bin/cf-1978d.cc | 552 +++++++++++++++++++++++++++++++++ src/bin/cf-1978e.cc | 585 +++++++++++++++++++++++++++++++++++ src/bin/ctext_out.cc | 84 ++--- src/bin/d.cc | 50 ++- src/bin/e.cc | 65 +++- src/bin/std.in | 29 +- src/bin/template.cc | 66 ++-- src/bin/test.cc | 548 ++++++++++++++++++++++++++++++++- src/bin/test.py | 11 +- 25 files changed, 8949 insertions(+), 178 deletions(-) create mode 100644 src/bin/cf-1542d.cc create mode 100644 src/bin/cf-1556e.cc create mode 100644 src/bin/cf-1562d1.cc create mode 100644 src/bin/cf-1562d2.cc create mode 100644 src/bin/cf-1567e.cc create mode 100644 src/bin/cf-1580c.cc create mode 100644 src/bin/cf-1592d.cc create mode 100644 src/bin/cf-1594e1.cc create mode 100644 src/bin/cf-1594e2.cc create mode 100644 src/bin/cf-1978a.cc create mode 100644 src/bin/cf-1978b.cc create mode 100644 src/bin/cf-1978c.cc create mode 100644 src/bin/cf-1978d.cc create mode 100644 src/bin/cf-1978e.cc diff --git a/src/bin/a.cc b/src/bin/a.cc index fb734b8..9b7e3f1 100644 --- a/src/bin/a.cc +++ b/src/bin/a.cc @@ -499,9 +499,9 @@ void prep() { } void solve() { - read(string, a, b); - swap(a[0], b[0]); - cout << a << ' ' << b << '\n'; + read(int, n); + readvec(int, a, n); + cout << a[n - 1] + *max_element(a.begin(), a.begin() + n - 1) << '\n'; } int main() { diff --git a/src/bin/a.out b/src/bin/a.out index b23cf61d955cd393b43485b962a0e90928a82346..5f0fac26c2a34dfb5b6e5336a6dfcc0048b3da62 100755 GIT binary patch delta 619053 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%0D%%-5II;2YW@#9QyRmB7W!E68GJFK-x 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%0ATL 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ОjU97hby9vCEHeLa&li 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%0AOLJj3}*PKQ#RUStiQ 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

2xnUut;7OTKIC$!0t4)(EM95BfZR= z*UQeZa>&xbgqwrx)UtL%R`z<2va8o{z3gWxgGRe@lla8-@+ect8$ImfTI~5H=3~#V z^A$EFAC=$vD%+edXZh#7(c}4q>@8x8$Ks~>kNNT_OE=&i7F>Yaub16`%d^b4*qR&U z@#CuB>hXCHqYalobzoX;r@_u?uv)OcvDJ%lyW~GN;40g3pvP0hURjJpOk9knpZE@2 zwHPzp;rH0y#qu&Kb(jlj{y7A-}6l(eyJOEH{f9-}P-T$T@GElILJll~;fL{|gy7$ju| zq}G~$2d3OFdpu9F6B$s>`IDSuN%;yfP$h@6zx_#`D|LL${0mWCMc=VC}8%CLNjdwGKnW&+Pb3NKpE(xF%sIZo+kc)-pN4)N1Qh z+H%b@+0V4kua~{JOuk9l;$}fN%UPx-p_g5MvwV}wFR<6Mk!<0hQN(>0F6O}Y5sE|MoCqzvu#YzCx*0>s~q zl_i*#)LgJMu!f;bzC~VW2_M$$31h#lM)5y<3;OKIVeH*oa7!&O#M?_Kdnu(zY6uHm zj_Il}giTp4CrsRb|H*-bK!q1s4fGttdzIB9mK54kMEk(whqK3)%ZoxAA&;Q|IA~=U zw*gCw;Y?bACm@7SmaqZ~u)0vTkleg5cJB&#ip3t@>&Z}V*0ijU6Q!sKc5a0{(v=tC zO(*3yZzIwP=D;}}#8!e881%}(^1-xpP!F#HD*`K~fVgERU5l}NdI0Z?4UjcLb}z|z z_0Fb$qGHdklm|AhlF7GXYq2WYn@E~gYh0+sXtw@V z8u=Z)o~N0(N*>O>xfLV+76&_bD^{Lv@DFucj90FbCs@{v?8U-?Zxz0{N*-%j7uV}~ zj-42b2!C27kB?~^-K(rF@hl21yZF49jtC3x!89?NO}kB=F>c+MUZ2I!e#lC6EE)QT z!HU7|Wz${gs7<%Yj`0WK*EYSVbA;cEIU7vBcyxd#fuA13f{JlVC-b6S&s;Dn&7~;J z*;u90G+Ydw(u>&qV$`rBo~WGS^;0-d~sUgiIfvT59wXc<3;7Sl9M zRzY5$z}Bpm$6MUc3u2#y<2}@GuEtJI^TpouQKd$e<5K%#*1H-bWLYB1T7!Etb>n(5 zgYm_1;~LrFYKLFH7!A1(^NfyBy5qsR!K!dhdmXEgpev9dYRMUptsCF#bAg%%Rt`3T z^l|VO4^|1LweDo_vin4nP&1w_z8&4E@Dl1yXgDL;Teo9VyeNr%b2}wd( zNxcJC6q?b(%}6Y`Hug|N>%cm}(n$$x3#!~LVD<@Yc?s<0PGH+gup@hT0y|EAVIuRt z13jZ@B1^bKUKf9zj;)pFCp2VuhdWAR!2?)_foTg)DvT1a`V6+%K(5rx);-iDuNw9rj`m2wAum-RNq@+FvXnzQEG?=zfr?7EgZeQjSQUJSs zp^y#MWncwhrwyzG?4*HJfOQ&J4OoYPHGs8exqMUD4A^E+Yy)dGu+v~I1}1DlsTx=a z*g*q}2W!?CEz7BB(g2$@sInZeMguDZ+izg&z^F>}MZE=#szlFf!FC&%Yad{}0UiXa zGq85BS_A6>s{zw@T=T=fw-*jZ_OyY6Rt||^NFWQiTfWRvd1bHXN@bKOxEnWX_raeF zCFO!dnnMlO0q;Hp^2=tg-;D)!!`-r3%HSS6b&$=D-HoC5a5g&!q12B*|0<;(Hm}!n z6%$M4Fl+f%j6Cz$QebJ{JW>l~HKnp&Oeb_^4Ma9SC<*5&_;ez`!TIdnQrQ`ij|6E& zNwVZeFzkXcHg*%zGHC-=JdIbf`5WjN&#Tx|8xTqU0(M}7>x!maB3=nkJ8PD-hr(vvgrUj zy^x)Q%~1Qb-eHqu1&~Eu%ci*?D}W4T$q$m%LWY|b8zGY#u4TJi^2mh1yk4K}F7snp z_<(6!Wwe+I2TRUlzq)Y4xqLZRZuD$LS{bgh;_}$+GE5*Le`4FpP!rwD+3RIk^=`S1 z#oPnFdnsFW50-7YH}!hfEBjL4-GfcQmV20duk5sD+}rE9No42#j7NDl+$&F&ayGFy z?}b9+CU)jt+!xtjuFjxH1{GE26X;ImY|JLC=i~2VOE<~WWWUY5%2hW8HM-I2fL=TF z(l@g=H&HX$%#Lru#cbh&y}F+~g!_j>uV5RBax=tGe#vdwJ3gd@RR5 zg0F+T74kO7zv530#Ia+WicL?VZ9c-b-!E^r#68yQk(AkK zUWI(4wEGFRw*rM+xs9EwK!V~J3w;24MM5?8gXsxaW)(kxg>8N{+x`G*zOkAecmRdd z@Feqpke+pZip_rz;mV$7>mQ_xuv&KLK|Bi^SKF)XLn{f-q|VMW{|x$AEt4KXn3c6` z{6q4@n0n}5jC3jkgL1!^7T~qeZLDP*AHo8>vzG0ANOn%l+|fI*=S>wGz8wo|FdBW7 z@T(~*9#=AC>vpiATjYdm4?{;=A%s9)0@*>ZITUU|kbN;iQ9s-QEp^HP8Z90~QM{Iw+z}G60s( ziNf4q=A+(q0hMxKE%s<$V5c6&mPf-*mar8yX?~F{Bscy=_U2Z3qO~15#r%AVw4b}< znd1=*Btkt)cm&NPr=G2UL|!C?>|&oiB4@>9?(S7?Q1RySCp7cS09w5k?7)hAH=9<8 zFsJvht(Ejx{a$vA+|HNTm`CA;zslA;ipU#ZW!uSb-^WfpiYNW5UQ;h&FU=qvK zbl5DcL&?9+W;}-GoBIaa4A;`KzZYAhd@=X!WB8#(`I{{CaoFi2p*r`ZkHVX^o@l{{8T`GEaY zg+<`H&w4$NAPsa-p|5)p>m)GkCwtVSw}5qh#+E;UZe;$v_jflCXyMijo$$}ujwj?P zp#{*<-XlO2WUt2~$)B?`PoRQoK4;^%$rGdN5A`aWGPyza0yIM^+ZyP#fbXUOTivdG zZX331la8=M+tAn3kFZk+Eae|zF$`l$-4V8s+|x(cRwjp9%8~G+%0BaZOrBs0X;b$z zqN-8V-EC}4H69O3IfC|MVKKL0O0BAvOA|9aVilP?sB?!e(glS8Ur;xY9CrU=M@E zPQaeTiKk>Hb^M#He;T|P`VY`UX(8;Lr=j2SJv#<2m7QY#HFAQr`&6&zC*`MhY+(%= zQT2b>V>M_rE&s(TT^TMuuaTn@%s;4=y-0a#F!5z13XH}ZI#TdS2TS{b#XLie@h7(E z88pI@pV-=GFh;ij#I`?!%+>$wy?V((nD7Ryb$@2RK7;uI4*_Rwmu0!CyH|PYO~Q>r z=ujNB&qV3 z6VJ+#3H9*nxA#uIf<%B(Cg`9R*bgT3v189-!=d=MUe8E&l@+(NvTEho(^8~9pUaVh zuVQgxVC`T@V1eACl8G*`nwjiKtvue;FZMA{t-Qo^($vTP^qf4;Qg7+QZ!7s;@E6Zv zJGs;k8qZ-1!#$|aQ%lc$hqHM*d@d1bK!Vt_Y8KX4h?5Z7>juU`-M4?eV#F-7s@uhfVF6L6x;p+>b*Fc9eV*q zp5*BBw6aHcV%I))r+kU!;K)7rPxjmW=81{8!;W?!;zV`E)ks zMXcU-$Fr?)t##x3Jk5jY@xxIpx*n^u;#q7_Jx1J?S!`E59_;U))#r0<-~T4+ZFZl} zwy^yzTpG?|XX-IJKo8%Au~&Aj*v*X!0?8r;#t+hGq)Js@qw&$>* z-AGJ)Zl7nIKb3wgyK}cZHoMsX4$-gV`6eGrMKkpZxZ>u_EC9 zkyDCp?DO0RM!QZllgJ-Do?FYv}gvi*?N6|ilP zS=TM;^Gq_aY5OpcckhuirR+jBZLhq*;=ZZR^CO$SS59I7*o(=p?&dzv0_scA?95-V z@os-vPPbIA==02Dzx|m;?3Xc#RNl&tzbq&CCm|N$T`W*nk$DFL3J~W^2i9e~caZi@cmxu+Dw*^3c|2`v!LGqmY*N_ffR9Z1L-|Z0*N+ z5>}wEqYHNJ!=-7iB4GB{;3-ig*4z)!^lI^^oCr~Z^Mkc)>uYkTwG!w3oX1Fs&k>WQ zg69;y(~wni7RoxvSo3o{%5AUXyz@C8r8VOqu8emmNh!p6{0@be;XIr37-=PEvQ(++ zwL{jhgT0C5$F%O~Q*OJUS#OqR4z?nD;rN7nh%Fn{Ruaymo@YUCpx>rF&&Iz&iF{s( za|>i;&nww4djkopQv|G*Jk5&4+6k?bY6$Zoq_|E=r32@Qb?h8j&aPuI`(e4bPO)4H zS*4=Kiuc3VzB+aW3apYmt#vHuuPDG)vW8oYf0gBt-8hebp-=fq1<%hco*$|*`$s5` z7svq01GgxlFV*sJ*wTA}Ws$%01s*di`>Sk@G4K3+!BGEghN1YKY{y^evJX0I*gdaf zmg_(msdFb82xa|$#o`7FUhA8)mA-|! zBxAQ8hD&98*tteo-qwic@Y|svmG9MnU8;DQ4Q<2(bFhKUfNS!5wU7Phw}`Q}<|9~6 z{)Kx+`_pAwH$eP83OUB=_!xP5jm{IKq}MrPIe$ZmB)>tPkpVO+)id{{d2gyd5BZATQhk>kfNx!+>bsGA6@OEGkHBZCKG5fx!~Ss&&nz?@knNWJ zZx8sp;J3ClVJ@}O&O#WAep{X?#ecx7DS_HW-6xoDKIj{`vfzE7#2>$en;wu4c{Ake zK43fEmKTr7{70YiOgx_g=>Cv$WW&ig3OkS=!*8))K}44|$&)N?00NDA!&pU=oFSDS zVMm%UY4(52V&1`z*4MT4DSNDVI)gU<(_pCPpD5OLw*DO~%};*C-h2nMcx7xqp4NEf z?`T?AzKd!d_O2XjF~{|Lb_~D?)}k@}o&t$&dBt) zKckyj{n(ZM@dG(3dZHKC^Kg>mcXSr??_3lcN z8^*Jza6YIV=j$f*d;T$yRXh8+S&sIP{~Q;dQ~EvIP_=(Yj`qAS2eHfl4oL|ld1?I~ zKQl>2vxfk!O@MLfZ13OY*@FVxa9eFgzvpXq;(e^RM!gSt9$5D*cKm&L#^6k(tq%U; zIsMqDN4bw-Z;?(H*x|XPGuxW>1r{JzvV;%hG5$q3kIL!yc(8vpkQCPka`d2mkhERZ z@2R4gaG&@C`C_YZ44vf~cIE?l%AhoycP!M)FPcWfZv}Ys*pr^CX$gaiAk&W`Zs-Ns zX&F-oS^f3>$|I#QUa5xnVow(FoA>-ZGwn#f4BV(cgKr-Nze%K5O*Q;hpD=Fdg; zY%>~@_@O+^KkW-F5z&;*Z?TvU<%EEfC;B|uxY#tmq-xy)t$;MNwufNLJVIhFYGTiS zC`Si0{M_fsA&b|lx+lnD`?)^PW-LX_SL5H3U@;}2-*Xbf9UdoD;+=Cy4j7h$6k!iQ z$j$5b+(njQYW?c+m9L#Q35 zT+(%QQbFPN+zG|4RNY$DZBg}VJEg~eltKqRY2xY))sF`c8%DQR9MuXb=42H}ld6-h zO48z#sIE}m1**#p;cI?^BF|f-xC>SPGS$`OHxwxHyHvh8A&f2gR2m&yTW99BT2xnf zLGdT4ZZVtQCWj4eIId*9Np)NHutjZH${!z!oDH8_mZN>_LJV|whS&F|n zRdrQfFj4W>CJrNe0UdWJ{`5N(f7e=7U-1tsxKr^rsCr4E;S_F|F`2bDgs>G~$kC=Q zC85EN9n@%1g;k2%z~1>n4jWZDQhD=<<~FJR7S*jCIh^drmSre<_Nj{7aE0P(dJSyC zF_>%0QE=@Iikow#;+CmA>3YRnWr4z*u2)?{w2C=bx@x8+-&d_c^(U$B;Ppx+4_Dn7 z)t#ienW}rO>aH-jcdGt-RQE~6H4A&zhw<*?t0Yj%Z_|9m z-^Gi?bs;rDO@E784Ct5qcwgOp()^zq{9haVXAJ&+)sInu4&43fP&%r1YttN}6qtj{ z@%4es&tg@-HrHyqSbnNpyGn^y^^{N;^He#_@pRDSMaM7a=$1L#+b$0k*Rgln_oeqWdB$Rsw4}~5V6>=}mLZ&1q8wpei=Q{AqaqmlL1siVT)aGa3cBOWuE z-v}2Y*ZH|#SfNYi2I@70cITc;Q}xze}9l5SP}T`0X#_@t|Tjdz1lTi5)*;GD*B?nnGW z4?bFF!0CYEZ#d_(;cDLqwL2B0ONVBd^l3;aP!nKMCXoxuDXb_w`pU4&^cJYwl>LDP zy__tNfm<~L=iujA`M*pu=~G!;D9J`SRC$ChEy5@aOVq&|)D&|Cd};D%$mzL-Kax`! z|B;+7*9>ykKm?-@0S#>ih5v8zc-W7H{T8iC_{AfdO_B=6LV+4)Q?YL=(c}q`(^H!l zO5ixi>F2(GBzG9?Q?u0~AOmCn2LluTKu#GLX^cQ;KNWKNA&Y&Ll0g$nfZ`uWfD;OT zR02~WrxLhO30(#`mB1g#4GHA&4_t~ zCbuZ@4ocYa1#`0BrMa4P+5))6d}nef(yx)K~9bA zLM1?QDq$|C_>CoSvudC~O8_6Kya~Joa$4_SD2F8fqh7Kca(bwS!t3(yjer#B=SP1O zfo1?|1BcegZbSG#DuH6ish2rchiCD?CPNXgfdVy>3nk!r$oXniKRaUjjMh?s`;1Bo zE~J2aB@3FOPw|Kf&me;bcL5Hvp?_~CV=`K#d%rUt7AR6Lr0yTQP-1_QKJLW85G zPkw!PJh8wNtjTx6Pf6GNW9cfUexp+Kv!OukFh|W9PH}bcO6sU#u3yzch(sxq$~wIY z{PR^4hhT!{Ol_rzQ+{aGKFFm+btfp@SkR7Jl;$A34L}-pb=5+XIu4hh1GRiKqfnc65d zKW))Yr3|RO;vp)38Wc6K1?SYtwO0BxazJv;UjsiMG}kC&m89lyN}19NsLp9DYtl+o z&Cn4wLR!bslsVup1E7Abf&JJUC7S~VkYYMC`5TZ^x6*R70^vs*{4});gjW-&4aRQh zlU((?1PvI6do2QgPI(=O;Qy)0Q2zhZKtegB2>+*U^}k9G)&GS?w*RS> z4@77v;@@yVPFJV{3p=%hv?{1y0o&C|XmYizaFr=TXs?OCLcz9v@>mMs=vo9rq{r;ZWVsO;mGy z#Yo$17kkvBKwS)JTZrjg3k&uO=+~3HbWNj)Q~vXBn>o|8Q}MeLFel5jhq9t7IOb-VUejBP&A!;wsJAe0oasHC zf8^Ctu4HQAWYi)=u|VQ!4PLYXIpqn8n`XJ(ViLvtyD@H1uF@>fycDnWv5X?tU{;jr zTo}2{0(&2w-ySYHm#}|~ikvuR4{}pDwjRSw`PfcO-azcOHcqC=b%D~=RxUku?AQWYkR65~YMafOg2 zA$c_E{EMVRHc=9i$A}k+wv!xCKp{Dvz|R4g#1xI_7m>6_MBA;C#)=7|?VMuG#m!B= zSWFacCQ%nd+&FQ(XbTY6A=8S1xJ$$&(H0>N#1Z@mrCl*FL7XVsq7?(e7rp6XBVg>=dVpwk4|dxHR!HWW$>d zA#R#@xoEpzq@?f=JW;`KQ+-WN7pIH1$3z_`HANUVBT$?v+G^C0Z1tGPP}e|?RRgod zD@5B~F?bKmainHBQ=B8(_Wzz|iE~BUyDH~#@tjW17Uzk!&sE-lwOKHI2~!TDURH{t zZPnykNyF8ysvIR1`Vyj()?g(m+KMNalEycx0#6Wq36nPv|F_C1-)jCgiczBNzv2=i zJSp@gOm>N7qODJ@jBaW!lkXAl6>T0MmsY9XLR2%nNh}vJt#})W!Y>^m+J<0Y728*^VuaE`DM-Epy358WOc}`Syl!~U!^X)6! zrOA3JlN9j>8W}nQ<_3%$)-aD{0DrQXd3fq{lqDsSg2f2S)s=aZ0q{+#)_K+Fmm~j^3}dYaw;3c-Yot zq6Vc_MCv0TADXEBXgZZ*i|we7&Z8h-`sh3+erEgDbR8Cys+}prM+ofsv5~`EyemeB zBL!`uZFMRWkJ)O-Cu+ieb?P&MLlTY?XH zM(nV;lFd}NT4uJ3#kQ$F7X2S{*CAIjSvoNtrxTfLAca%z+Kj%bUss)m%l`mVUlmTWZ^OzL~UOZB*y22vrl z8GOB-`wnA5>ffR8kY2%?o7DFqt1-%i)DM97>ajN~sRtoD!DU+hmGb^jJS5sKvUx`c zKD8+2$}{Hth&1l}orV(pFbN;G>9Wn^RO;*>Bz(yzbOjr->O4Yv?-})UbE@-W()j$m z8iKQhgk8TAdNc3*gfvWkN+y+A|T7Qy)?RBSI_SVQ0B+e!Ds z^Xqz>i}Nc|`b z$DT-vbZ9M$HNxZ4<((Ri(p`9Gh&w5MFWO{((l9KBbp2`aDe*s|EyiEbphdGHXz_XN*cu=^2XJ8Sw`!J9KJFAyXNrc8P0kPJb#Zbxz^sF;J&M+K*zl zZI-_}j8U=$=TG9#m>d1ciZ(TMi)U;%Xha#kegV40pUi13`&aR-Xj|hyPPg`Oi)(C~ z^wAF_jptZM?SaB$dWC_3K}hX|Y@c4H2Byu`)IJE`*9-Ts+a^YajiS|scXSb)zlkQ% z=GH5|&Hg+wGK#NR^y7<%6e9xkMTJ>PNv2bf{7}Stp*NjQk%aT~LPIW{5^3c7Xhc&r zQ)GhEMAFrI=^nOZQe>D-%?oo)iVU@K&)e+jNs&?7`QMeXiTaLZR@`g%uR*m(eza+4k|YaA}AzdA<2=bEqv_97R3oF0(Qe zD1#L{HaRkC5mjm7@SB$TUn>SLgHG^DN{fZ?&Hi)6^rBn*m-0(+E>NWDD^~h1`yIS> zmH#T`I&TBn*}!t9M25KN9NWHY{2vk(OfuT?bxQTyUYJAkxqjjpm;4y;^D0K&lc0~F7VaPjd#OF|Gz6)AkE+h zSiq%`5iTA|m|=ca92_mqq(aD;L>sYUOwHiu#3Aiu6sIpJr^?k>>@yXEcb$Pm4`a3u zeqGfU#!ZEZrvonuH9sW=Ty7()_r+`u$P7h$X8B-T~8B;y}u%$@I`Kr6oNU7 zc_5%j4G{a_LjfxoY>GqvLh@QlVKi0h7BOIU^j~rEuo#dTyY-=f+YWfuKHzH9k{%HQ zu896SPAbKKIkAsE7O+tnU!S-fEche(YQ>k}sCpuxMok)TGb9pXx3PfN=}d`Uh^l@v z;5+gU`3qZ;5*Z!Xi}PTC)}EF>oD_m=vO4$DE5LeY*Gq*$d{iplqK}_}~mSVJdn%WrrtU$wP>HmHk>if~h(C z5KT@9=~-o8s;7zt3aZF^SJ`jAuv~AyZ<9J2ftIZVP8FeW_`C{&Q^H!t{)t}b zjn!!;;b(fG7BAK!781IS>7|Bcv3Ia#q3YQ|8gNN zPk9S4#vDK@Kk35{Xb8?gajq6paf8KoR>?k zbSZ3}M6rrPGAW#Mx>P8JT`fJKLo=izG3;6&G*ikG!>-p^6r34^ma1Bms$eQv!8uF1 zUJP62qdJ?=t)zO3mLNs<3TderwpypFCNxu8CWfv1J)a|GNntKMpU*QfSIU;cHv4ck zcY5R`@gwG%jzzn!bQhTasB~{C*Oe}Lf>&^&mM#~kUTvn*y%Pd)h*!s%YvzS}Wi0Ux z6wG-IUipr~bzP!k3(dTA_2^nNFI}%i!I?*BsibJ}NR$%04!@~H>FQM%5xVvFs@I!& z;X?H)--PCydFgs>D4BHLVCJQ(N)#%M&u0(_mDWH$Q)LW8wlhH{tFMV z#(cXu>^0N(BdH|b=BR`cbJX+^JU*&-P+Gq5;jDUQ`8 zNtJ7$7p{hWilpRTxOS`M5lh%GF(nQPs=<$LQM#+5m^T<=-X4-(UW^~4Si*j~F6=4G z^SFyEEU;WEiJ^nVMHKl2NpUAiCvDeHlETqOLqkOI`YFn37&f;N;2KE`A3ccQLcecL z2m2%=GI18AHF#Po490yVy(?M2RxT@^B$E4ybX2nbi<7v2O0AOhv}hR(eZ$vr{AEyN zs(750&WarEI9`UJm$pgPVHh1c$&&(4jOqzK#on0}8F~>3fc7UqrEIQ3(Xp-$AQ(>tQjq zTWYaxFm;d7QYNJS0&>4zJM~xTGwY+Kt9W>d9LABLDp9l^5mVg|K5bg%HO}^3fl-d@ zrS?h3tS{?@sr}MX>zh8-f0J6R%|7Iu)NVcE6UrkUx3>8Z!PH^xFi|O}c}f*c%=(>1 zT$IhJlIc0o`is8EgsCQC{_MXgw&V4uZzr=GV9a*-;fPg+irh z{ZO3hZwfG3@5B9IuQWB#bkbV$JFBUKfnWZetyEW#>6G;?ow|@Z1mpvqrjTkkowokd zM<*EMYagAVrZd(v<`|TaQer~tFp!_k37jaU5Mp{qw3;kxk@C`XO&v}!M1xCteT16Y zP{b+|oMEOzqBYmzZG6GhMuWKlXE+IO|DBKEwzTXLXKXJ+sx~$LsPO5ep)U`9x z)GAs9t088=8AUwG$a%7av}jYeH5qrTI+68Y>Yc*W7}HCl^$L{NhuD&Io6b5 zvdT6Zv6WD{g7aciqRCodqu{C~Ub;#Fjx&unSyx;@c!?>=WL;xhi2I_tCK&uStDcLE zU!E&IGCL=kl1-DFZ&<@~LQY&{PuqO%t%`*%^_W-_l0OxM=9=83e zH{?l5vUu7OaX~9&{F9#P7cVWBBECY`IZ25;^M44t@&FyH@Bf@Qc4R_6eVfjzU`&buGH^y&UxMieZRl= zkLR3w?z!h~=icYsbMJFsJPf9MC=@1LU{d-5b7A6bej}fUt8nga#N@j{&Wk6XV{-FF z=Ff=_`#nxhWHf!zPJGRwAZXPUeOjQb?T##ZNF`Z6PZ?W&>UqZ)}WywuKzx+fAVZ5-9W9F@{CYI zX0Dl7hhC2IbYdCP%*1MxoX>If=wy_8@HjIu74A(=IShE3;sKE-kI#9$Facy1hHgtA4N z*=yxtrz8P$Xo3+LQAPGrT-mfU;+vMDO`8(Fw|i1zZOH+D?1mPc64!#0g)&uJFb{#i z`0%UUG2Z4fF0o#V-N&3>i!rV(7T;Jxl_bM&m$u^U5@J-Zt%R_QrDfg`X)B>g>4qJY zs>^uSx^qp@PQoI!5W=w6gpUW&m29yQ4wai^x{1lAr*bB@iw?Rve6ZR|9>cAXVzSUc zMb0XDEGVJG`X<*ca2=Dl@uG*LVdtG!1M?&0IP_9hFHBrzGCJ+?F!lsSQG ze;%5`ay9Q^`|ZT$X7y66?@!noA=Sm&<7U+3#Yi=(a~%emBYCJAIfG3OCjMrO8e%3M zN%)90n9*Z`YB4!{T*K!h@h3F=cO-mT!|ygQx?=|7_DRd(<~c8|b1j!TZ8Q^pk+xAe zPuhtmQDP}D=d4pJ3Ov-L3e6e}H7hhru*3CxCDjUD#T6C*ykXqz3`2a^j?QG$j@FB+ zbBD&&i-Xa6WpDwsUW|$cO89t!gu6uIPiVM*Bz#)KAyh0S6qAJwlNVdN5M3V+oALS46^VBJn3QerqIr zTElVmm>H|bF6K&`6|0AeiPa<9*5q1|_%><4O8Vl!5@l8i9* zO)5P>qCS==wr6Ggh^xZeM`Mb!0qAhg2xM$vMl%d(>iwqg7Nr`=2h68Xb9%Lj zS3TJ#HX1)|9yEP(yrdkd^vq|>XHDNCG80yX8}(004s}FvylqETwnZh2Nb6p53r&2; zEG+pgB{c&}lutJ!C#^DNH&V#LAX}FcA2xYAax$mr#uarU+mRDjo4g;H9F6J3E&O=+ zO#h^+mus$OCc1x_<~Dv6np-kp{&&rdOM98-Htqw>9X0@(D}@&E(A@k1NtK)PyKI4) zktW^pqIn2qFF%0N4x2~J@`Ll?lu9_l)v3#jC&~{TchqcHewfn3?+i$)a)|^ZD#1uQ zE)w2l39nxw;RH)idbshxqz0w9Kyb0MrMwtU`O4wx1C!F@{bbXu%l%~2t(c$ec1!$Z zdo$4Vmpw*>e}*U;6|OfZsm72|b5W6qpKLq_B7QOs1ST`3_~thJVTA7#aa;;qO%f-o zGhyKL>^F;%^CWS2=O9>cLS4v$n2-HtLRl7}u-`1o6L^rxp5H9WC*`=rZ+2PKC4RG5 z91Dy2&4m7S$4IrBdVVt|8|ir#`^`20k1LIl9t8RCc(N2beKyEttT=8KYcvm8>Nk^| zq|fiB#d`5ea|D2})mKz2kc!7jd;$Y zv;b?Ak-0A7Ig=L5SRd~>(;Oa+^PFi8k3~FZQDH{<2KJoU?OUS#LNT>9if2rZc+NJ8 z=WGmfB(NOMbJiIQ>N(pK@tnnC(;pYlnTU;(n!Z^)XP3)L-y)8)P>kJ3-zuK77^jiG zO+07uJln-{7SFRoJZI0t4pQAU(szpI>{X#?D-=aMXVMDVn!A`5V$Ycnzmz849r2uL z6Yo*aSxg-RtOeQ~8BeI^?D9wvl<}l`&MuFXk&>~OBOh@P8Hx-zk?Rc_^mWEQ^_*Rn z-pJUmp0ms7QY@qS0nc+L72@$}WIh$~oJoZ;pN@FWgyqa^wuZDh4n{m@UJNIGCgM4Z z(mdv8Bc3yf;KHcqOhp}vc+R59jEv{vJ!eceGM_ax~&O8y~)JL{hoLXcdf%W9lgL@(e$N zXq~`$-qRVl@hhHNOp*y*rr*r_>?KjJSJeD8v|7~dvFIUsU{^X!srR`;=*9U^&Vk06DD=Eeom_IQ68NG9X2L*vKA(-v=A^f26fe%JQ6Dl4-2527edN$z}Z)&b4>#XvwpJ8! zm3we&E6JsVT&YKvl~gQ(gO0<*Ob^WD$l+~J)Z%m}S3s%Zw{wyjG(63bx}0J(@D7K^ z46v}A`Wz@F#HhNQIvs94Dydp%v!s*d6r+KilCFn^<1N zcx4Yqipb)W-SqI}*$YltNaEg=hoF0_VPywFNu z)Al@fU2LH>%;JUC3oJ`wI&m)J!_&qlRZWU1t>z;`Ky@~}b8J#Mbsva|Ud|vY+W2Ou zD6hXRQ_(o))#0ngVKu{&v6_*=i`C5Y;hV-KRiP2#3FDFyYw#+{+x$O&#iHgXZ&4F| zoKx%x9~+0Y%bu_`9)~3M%tKWpYnKBYh^$>W5IDq?;$QT*Z0#a(@_rPC$l4`FJ|0WV zbw5GA!^B(zuuc)Kvn;sj*^n+~g!CUJ!4DD76!@CS-eM-oCk4A?F>_heC5xF@oCxEB z@EHJ*u@$ld6Tj9ovY26ZBmEy)%mn81EGhz|$mxd7ix{(4ZL_-EO`kdMKbYBBxp_Br+3aGK#+%{%Ar{ z*&15dYi(ZL#6_ojie4={b z62X;iUdF^{RmJ9IOnj=UHZNo1Db?(cLeUcdQjqlP?AQqap=4IKvDwcD0HV!hWF|9> z4**1I0cpa_8n$-;Kw2Q9rX6a(>>8Um!0Ep*l0Lq7#@HDjf0KhfqO;3r^8-enZU72+q`o^l0nPy|n!Y2Tv z6|^}UGmV!qLhCJjO>FM~fHrYc{2dDp0K_yjz*?Z)k`O^AZ?wIgePM}- z&unFT8~f1+BeS*bZR|&Bo`z-F-p0N}aMrp!(FSW1vb~-CXgZv1wBvU6nT|t^wruQk za#I^u>Z}dZ-j3JMh{42jDo7UC!+u5fr{y2t3dmqPKU|U7E zG#CvSBJu>=;8)M%lj{jFvKrx%V$7>-gs*{IN+{2nKF-Cg#3NIT@S))!Z^K;z5_L+V zFhtev<~9ZWMkYLQL|gZ<4ZaTVi9u%u~E?( z?W?^LlO*Bsvz<^pW3(S)e9~J+NBak>yswWR7s^aYs@HWQ=cbAoa&4%>X zYDnJ$YC-`=C4ZxaG#4*nxlq1ULwalP2*nYzC(e+Tl%65YcwikT^bBbs#2eC4LW~WD zv{1K4(!r1xg0zBXNJlxmbe?4snw8Xs*(Ji8q&9L(S=V9>2sbTEhLWg4C(J9 zhIB#rja(Sg%~`4%(yU6dVA+ zwc*#MCDjWt`FAVl59=t3RI!=Sga;b#nW>mo?&z;TE2g`nE?5dHkwlrU#Gs$*PtgHy|?a%$c)T%o)149E$KCO^PztnE;h?$_04 zh9~0~zy%JGH=?R=X0Fz6dt`sCGi#v}F`yIMOsfG{N-VrnQO z)oI{VYf4)rQ}YlqWfc5t?TmHydi%O#bSRtoKLdZ@8-8#YUmN16#2C76fg#^bJZe{O z+spacrsO52>^=Pi^f&u=J9(MOjV&GUi!GOD{b~n9NpO0J-%ipO%~Yb;V1vpDtilKd9Evw*texxt`1~*OTR5%W?c6b8b1txc`mpL{2jDe z_5UvPS*z^g{y$3a^<4S%uwCBqUlcicV~!cdVFMu3R?#4w=EVwhxrxI=du*k(Y+&{)3Jg+-QG_KyZ`&4THz+UjXLN<9Kd0 z{h?)4)f2bP^cy8h1UIX=Eh=tnOx$)Aw@t-uS8+Sy#O*NsB5f{l>6X&fD5&3jRrAhuET;AzWtxiUE zd#8hw+*-~#SLa>cwvGS{ZQcWK=kTc0=-iGG#@tR$a+V~??aWvf(oMU`N$zU*VG%}l z7pJR}JoSGI)o2##VGx=d6`CtTjRn-r=^kE_hkZ#DrH7MT#~%42)URh0Ljh8hH+!fv zj7!Mgo$CBRRT!Wuo7=>y!X&MVU{V#qq$=z~)~Ybg$R6&D-~v8B2P5mh3gvhe>S0oq zh|pY{g`z4Wog6N^m{d*D-brIa&N%0WW_QwfXM%G>8 zdl-^`W`$%r%%1Mt?j-lOQ-(qp`5n8!GcH(7`pfLdZR=rZh5<@LRR-ETQ%{@eBoDUv zV?HCbBZSOw%HPw`xx=CI3v|oD&t+eb%Fljg`8$p5Sxz4Jz)eh%vZ7lVN4K)gqZ&Fj znze^X4=@{RXs%=p+o3@7316I@R6aEQ6->uexAmP0vz9Atvq53oCl$6kqOkoLg&jUu z*zs3|oqWedPUmYC-c(azmnI6c+Y79p-cMo1WPuGrP45zjs(u*tlH6D+XF z{0a*1Y^iWzJB9ZQQn)x*VZj20OCMBNxJBXpPb*wTuZp|}$|+o4S74|~I7105+ACa{ zt?R72t8nF=>|P`G8R!maZdhN#K5 z)k@g0L*dR(6#o3X!e1+%6v4mOQuxPjP6NOLr zI4k|%>fm@KJhNQkvs)BCcS7L{pDKLuqQb+8Z;QYqjTIj4uJEPd3XjcF`0{dvuM{af zeq7;+4;8-p)7#SjtzL8A5rHQwDLmCs;p-g$7gDR@G*XeP=?+Co&@x4mhzkjx%EZkG zq#AMi0ZArqI3PDflGlnPuPw>%qV}Q2J0S;1lidoNz9g{I$g>J_K2|vTSA{pb?=pX< zG36DGt)*~WhQjfk6;2qWaN<0LlU6IdWskyJj|&WSn*50pZu?!~l*;c(22;}&=JrxJ zZIZ(2OBCL|M&TVt6wY`{;p~qUhQ3pnZ@e$^=3J|AZcT;rnlcPgr}-U}uwbylJI5-# zD^KCV#R~7h9F8N(yLCFs!!=<$p7PeHle}KXR(-l5d2nhY}^z`FO zICu=O>+8PGZ(tmE?K^g~VT?ZG`?>4qfzJ>j4;I`ts|{j8r+shwy7mk(&cvU(0lAC1 zjWj0<%;`RhVUGbnitrv2=|c&J0tySO2@LgE-9!mR?G?V*PvKiPEBt!8!i#qTE~Fl% zXt^R4X^SHD>5w8>^rj+x=`%&f(l3hSQmKz5c>&c>WIZ(o5`x4hshyIJ;oBEsdXGjc zQqez6kt+TLid6SMph!*sV~W)FKcPrn|6xTM_}^3{&HuF`&HVo;lIc(QShBd$Uxkqn z^~mzqS5kZbjf!;gcUPpVf0!aY{I@F7#~)H8+rLDSLH1Aal5~TA~XG66`AcHqR1ToBt;hZgNiKluTW%>f43q_ z{4XhTzyEzjmixa`gNW_fAD>yGsR9!y0|SB>E?D*q`Nyxksj_$MS8gfiu883DALD0qDVjY zV@0yv-xTTZmI!?=nGJNSD>BGUS7fl;U6G;gXhnv(GZh)`E>UEp`=}y0?h}fPa*rr- zv-_4JW85zk8SDP0$OPB_g=9L>E&oMGut{z$CEe;~C^Ff-Ns-&!!HVR%lN6ce1{Im^ zE>`3Y_hCh5xZ4z&=^j)h&pn|?(0yN#+3t6WH@_ce_&+xyPNS$RhWCMHah{DsrFugdzp*5k;1|?r# z6xrkcrpObn`;FxKq?-ujF6y0DTVbeib48kr71*!a9SXY_D(taUVb3E9dwry^_XUN0 z624`D{rV;=?3b=EyPLxPqZAI9rf}e$3J0wb80t6pfD(qBRygcyg(HmbMDWN83Ulf! z9Mw+Y=s^PeH@{6`3%-ZqF6!TMxmbPuTg_8?>%|JQ)+ubWPhs0v8HT8TyAPDm{(`~| zSDh0<9V;m8p02RRP=SMc%~aTXiNZc=XbWQ4!z(EqQCH!}77BB^DjYRL;pj;UZ=S1gOrgTD>lBXLC2&~A^9nOhC~SE~ z;f;e-CccHd5Io|F!?- zC8_Kg``dr>qEvRGCA(wrAzoLPu9=W>>J|gPj!u_w%95lijo9IP9~rm8v2J3kv4-m} zpn+hxms0)iQfkV#TN+*FZXKeFG;E#>Ii%hC7Qf1Y2#T)Oevt@LTAeT z)O{)f#v|rhv&SNu0lY3}SJtj~KlO}6S-qCgN@n}TTx&0;jX?2dLU^?OHhX)tnzh5|q zl&a;Cf5k0Z6GpH{S?^9#jMqa_1K7>9GjE!Um(SaglW^_AK*}$z=6sTfnjKHPmfk_czeAAZlWaQ8&3QX}t z?vK$&)6EpPJ(3_sA46j)kas2jI2uoZIX2fHRmPLg@XpeP)GM~)8Zw-*G${}|$y|}v z<3QjHQ!;MR)>|-zMSa4g;=iLNiz!gm&X`R7DA2)P7Z=HYZn}s9)$EMhxGB5X=a2>; zI*70-+PeII6-x42cPeE{^TzY$YV%&sn?6mNH&&iNVtCU1N#(}G(gqTza>;Mk##8}Z za*uw8Hs%%lGqf?U;Ge0D$<2Wl2!C^bQmxKS@{z;nwI+{`Ea37mR?#}s8z8G_z3GjR zRrILo4Utv!nCXp?RkXq6K@uLi3}djz98veW%bKbB_d^)N0loI4De7MtnRKJ-%aRR4 z)t?EMsDDi)iFP0d0x3+%_>U>-|3EGmzZsK?*UX4?;OC}vU}#rdY(2zk4}O6g$)#!rhjAd_=uG!P-|Lv_5(@Rj)^4( ziG_ZLtJE+YG&3%`M?Z(#%rG3T;Qt=?tYJ7@!T*CP!-3laO%VR`fuxkqa@c(INQ-;$ za~91H^k9w^?ZHu2vb<`ew4`J=WC6@Fc?;)TE z+oN^02bpk54{k-0Xb*BAu!|`fb1mt?P1Cvf&oHU@pU6dr;CxGa@NitL)hW`03oPlu zmyw7PM1IDdOzLCz7JkV^d+;txdN7`KA(KX4!J2-z#XT4+PoVkj;iX~pU@S36T=aV_ z=|Rnmi|)}ES<-`7@GrKc2e072&ypVG_COPaORh*NH-U?t67GX+#(iMn#l>3)dbDZu zhtjRQNfD4e91QC}}j7fcLJ{PMbZ&tku_t;@f#CeH~KbJZXy5WHOIbXu6-yU2hZ9Y57RuGcfTrksCvtMJLgVdH_2bo z-LgPK-LU1?+R1VP*fzy%B3q%+85BF_p!a+Mn@Z)JKs~{X>_N_8CbQ~Re?AmHUX|ZE z65(eI>T!!hbsFeq*ND}0t5c_;k)7*IVN*Dj%M-Dyf{@n6AciDRA-st}UXrcyoJ# zN(BpuuSYGU0U$2&aHbT{1fh&cWSnCQg;GGgd?=v1!yiC?Xss~u-y0MV8;OOqTPSRe z7SOYTE1jR_P;%S?Vw0kf-jhf+zY6F}!IiGhyFpnic@=ukt6>5!qP>y{KNnGD{;Q|d z>p^d9mK~VNHzTH*WjYoR->z6l%_V{2{45YkA@vdZ6T&kPI=7AnpF;(xUl0*hsT}Ip z>F#6<7t^Xi>uIHZ{mX_iHSAa?`ET|fr2{7JgFD6lwwE8Gy=D{Fx}Lh6=i?pw%%-k& zgBRFuHgl~yUf?M+!?o&qfoIGXu9ZqtA#D!*a0q`6OIAH9H;0NnXBc}Kum2bg37}~C z^t74jT8$-Ply=Z;?phuAFaA(}Bd;P-?IUXnm7V>p*#H4!1MSCOmc3|BcC0ay%?3IE z!XdMzix&r%H7^T%Pmwi|N(P@ZyCD#K-t5QV1#=jS5UEd-HHj+CKCDu?v|Pf2WaU!g ze7f~H{GaR4`BdR~+>x`9hNC*e!}Lf}8HXt&!WAA#s#)^e+1yinI;@a>pB?V@NK(bp z8sgh{3TbpIKW_*JA4#gzh9|H^a(i?k^%A^BLskQR7J78W>(pn;bm38akx&+f--jUD z5dIUO^otVDcWo6?dOd!g3D;SZRLT4~6z;qxsbZaL@;SqvX&lAR0^++l3W(_i^fQtd z5FZwSGKH6}!3UguBtddBju_X3%f`<_nizf#(KJ8&_L`*X4K@ka2aP#qkKla8#ad#@ zBDr6)fQ}2jM>yoOM=pxZUA@vV$TbEQRG+jsyGMQ_x;I{~VpWtj&t|fjJ(i)*0gN0ZqlmcRN zs*v^xovqFSdQott^Rs|hP9bFp=O+@&_*&9je(ocr=a4}G@v-ni^3CHaD9+CU(N}!> z0eS)UB>BlESs|qgr{enL!>;g_gdbiH6&o(m#d7a5lfz5pY%~bjrN2)Yf-<^zCR=y9{LTl$y(pfFo$&2D~{{>&HLU~UE;e9YVh z0NT?4+o<&CzThVF2*+$RU)7kQj~m8zD*fBF!OiAa;9!2`kYVfq$qa5WPXP~ZGv5Ws zdmN9Q`1dL*7Tg*#cW}&hb032p=5x%zX90`IUqp6rr`Z+(9IrczYz9>Z>fcQ^OXov| zyQuV^W^lL3XAFZyX7q^RZjvL0drTik>@xL;As2BE;fUe2!6&qgd1+0+@C4J$;FG2v zJM{j+1-+%#0=LN``A^zybhC@RDf`3lD;tuk$d@V3Ak&?2ul+$j{CR`TQiDS_ZVF3S zayPn0t{#@JS2)%foNqg$G|FfSwuz>td=G$`8}FpK(!RI?y>-gm%^#2ODe9T8$Kh`% z&W8o_=}j}#%7F{<{PP?-V|H+z-d^CW+0n(H<8uD_^tRc_b^1zRT4&eksn|`f(@U_t z7m)riK~R-Bv>Esj^5yzVD}I!GxBDyPG5IC(-Qm9`c-q{90QYO-7f_5b3BZw6wVg!0 zZ+rob{g&AQU|wPCzW&P*I3eb;;sf#7@QXAIsqzi04)`NwMHANpufCqwEP?7>@@v5X!c61s9i)jV@x0S(R>hgQ11x2B$*|cJOl*%HqsO% z9>0mGmpRn{=wrezl_RXigiCH$;A={uUKk|YU4`@zba;{AYvtXsjV66)@ldH0F1Go9 z4wVy&{_9ZTsOV4;zBibHp>n6?4VAkr87e#^W-e5mzuK93cZ{A-_u`mjY^W@<;)cq7 zR@_ioV*UR^<^8y!@F#aP$jwZCDqm>)21|y@Mk_j0 zzSND-!%5AZs($j>Er9)-P71!fcL3Rbi-Bn0$Lx&d$zKy2tkwMZo+iCobo?-P!VyiYhPI!J`CJ5w-7wquZVT#v!9LkEMrPj<%eeA;Ejjf>r( z_<^xU2L|VvPfzH;;DEkE1e13NV|laCj<|1M-XSA_f9DMh#?R@%VDx((7)91Z1b80$ z0x-7{P#G5?Ohi9|vXjiEseb_3L9a#_bZBgj1S3PEIo=}E(1hMwA5U4$Ip%4rErWwrR|d~m{Q$Po zdOUxU!SJm00!JLOUSaT@^(FxS@`@cXjGsM~I)=ud9$cLi32#Ezd%2)oA$}>h^}J+pTEqy!D$5;~!PG)7CQx1mCodGB{(MV(^yrEj(FR;i@`fq0fTp~l>l4mb3EsmY^A(s`5rgM!uYXDJ`RQttnvW-%S%0K z7;{a1*|WL@T~H%0`+re4iH}TW|E_JbMcW#%wuPeFCi@D|Hm+wOokEu{5_}sza9M^H zq3mwq4!bU$!}iQWQDSpgg=Nqx{y_^@q0|MeHp#i z6x;V(YdZowaBl)!K;?l)Ug&*6;gKDxIt17bx;M(9x-=#lj!a$o(4{*GP3I}oA~T`hTyX$GkJzxGI+r%0ebLHs~ms` zs0QXjPrF{<#t!9p^*Rg64%!%{vsz`aHCY4_e)=+8DA#gvzwvCvRV$>L=-owvZ=-uX z{aGJgwda58&#lY$pNCa{7TWRpv*`cTALWSYkA~y*XK|eVtcLz9w#6)Ljpog} z4Sn~B>d$@lT?ho1*aZv<><0nzn&YuX^=GNwk0T20p)axi+;5LT(9@r_sz1wY(VqwG zsQ#>r>CbxApXIjbPuPy?PmN>nImhYGeg8#&l+OASx;qW?=tURORscBSHG|PwH)Ky?|x(lypiB4 zI`u`<_%`9ZVeFo>~LEPrb}`Iyu!w~dF*EY{Qk+5iQgc~z3@p&RL~@Qi)9 zKku#Z@_k9wn|$X#=f`%0BrV=Lf?eIl!=^z7{_X&Rr$K~bEaLlpxbI^2Z4_ zQYB#B%Xvwvy|mdLT@xc9*`rE=B6=B&P2(7Ix7fHQ`BjvszYB!7wV*r>a^z(+i@O65 zpE?&`RXLxxH{9Z@_+ks>&3^j*)Ug?o7RNucc0@F!0pt6S`@294`Ln(m38!7wobUZV z_>G!UtL@~Ko6*SJB*JLpSPt5gMu2c=ptz_r~$Cn7}rwH5pTyQ0Ai@*kjZ zG`P?VUc(K}KU^=A4=cE$Yt)i8{08#pQ$i)zs3XB?m0cr6^2gLr9yN50#zeu=+*)}S z9>sj0nEqfHZqpr97tg>|km{RECfO zq2&c-cLAK4s}18SXPPgVBo3xT@h?>r_fn-l5ErZ*^(_?_YpsfSmMVy2sjB#us)<`E zbY0A?bT!*+)y1ilTx$)4)M&)dnl11Yk5UP7C|!T_5m0XscTz3!Ce@Dml1hpzsg8J( zQpAx|H|j@9khprXG_D_68HbEg;zUZ7g>i#87g9hxNDT*Z5gNt$kFF7V+MP^q9Q7S- zr86Luc7nz7UI0?Ycg8NBw;EVk-)yT?u*oiaiWr2KJIFH__fQeGucpldKGupL(*Bzyv|CGcFW8RLB)xa8KrI|_HvZx&T1(x zj^^UwxKSJ&t+paA*gERnNaW561+&Dt(L#J1ZN#>~b*u2FABMd^@k;>+kRu8bby$q1#RgDXj7PwA~*k=`;Y zOK0_#&gv8A#Hb>j(pOv<{o*_rRfV1{?u-6W?}c_&wMb`O7wxR-(pjMaalMr+y){sK zOFFBD*I66yMze|&Bgp=~p78ep^uepZxWb8nt}db$nC5sG#9gO;Sx@T(h~DQJ@F35C zQ+ESlu1gUfg_sQ=ZuY;VVV(>`=gEM{;&OM}C9g4A-sPA`+)I1y7aAaz8`%4+4=z(9 z1gGx9|6vGM0Zx1Hd*Fb54IuYW9P2OybD!crH}QCRr*|(sV_yr%<5F&AjsGVX&fpO* zRVMxc2!=%Nv;3bgk<99|famO&u#?L}KTd!&pRkQ!Dd*y)ctWJE@#1(}crP8c`vdY^ zbLIadg^Wx8;)q2{;~n9@L=u6QVN!&>^pbtBA+}l|)GH&WoP?mX9Vf(lj5o6P(lL8} zBP?PrWnH1Hp~RCOFaJ5xUV7P{oQusZM6$etfVr>OINmD<8w+F$xQLRjhsWJx@m{_) zY8l2ymy+_P!3*P&91Q*bF3upyDMQ^jE~2@)#vr3CqBt*Rf#S}9;_{3Tr?_0>Hf%z% zH~Z2zcT8_NO7xbeBtc4rPd*1b<+9ZORZ*Ew6_q6@Ci(59lXeRz6we*ixfuUlp(JHY z0rt}CcIXeN5>HH?-ts>+#p-gIDoGh6{S}f<+YdmAcn)MGx~x+FLx)0+2o)s~p@Ml8 zJ7b?luk%diRqPTaVs@y+TlPaxAD-6YhMuQB-YDHmXYIP};Y0)zi}(!?>c`vcp}q9B zy}cdGj`bRM4Itup^L;P9WA6b^vKLiXqj(d3FTHDDlW7F8 z!1z>q>3zFgbHlhbp1+93b%13*H^LbH_62NZvpa8=&;lm%3zySOt8eFKx88(C zSQ9)c%^Vp;w-Wn^YqMc7S{%eV;vc?Q+{0s{-r+i8|BV&b@F?*Nj}yo6_?TZfCB(+W z1aS*b6tD0k&nb+(>P`53g5T5*kb3f_{s`IDmpAn-KLbTu)<`hAB6vCyAJQ{NK zr-{RIs`x9Xi@WmnsJF6_RR0d~RpyGTa)x*+XT}_rX~l=2`m^AtG=h2Jr3`vbO09n5 zNcEdUtKU?rKRd4a&7}IFxay~S)gKfdel)3EXRfHsay+B|fZ@bF5_hw(#7k?$55$8! z5HGbohK8Rz8o3c(_+|QzjL3k=DK57zgl{i>Zhwb{<$jhI@Eu{bC#HG|${eN0bChq-oOUEl4ou?+A)&l1L zZbWbHKWCR~gMzTSL|Tz0MDDHsZ>=b)i|DUn7*9ybY)t?$f%BP592n_p8120Xb{k`X zK34uR7aV+ws0i;9oICJ1nuLIW_6FvwSssng)8u|{`+v0gT#PZJ`kRQPen0tt_8T2V z#>_cX-35N&7M_gr={ncwED`xM7hjwion*2E6C`FJbj=3J%%^#TN%bagQf;13cT!E) z2z3!cUURUvFuG8Q-~!^}2j^2a066jRY-x0*vcbEFOE`!45X+7J-?7q?$X1A~6ud_w zgZI+BC{JtUVaZwGxjwj1CF4c{kTh|dUO3`jEVwvMblaHdc8ClF?^DrB;zYNPiSB^I z@lJ4&h=$aS^iKG?SCVRmzT1p1;QXaJ^ZZ+YPU60pwUk`^FA#4#%_^kgK>2FzIaII} zC!BnB%>=kIfYvMrK?oMxK`(OfY7Ta#Vh8B)XmBZBTGaaqgz?KOyA6k4ef7*@!TYHS z@Zho#T@RSov_Jmy&9~2I2Opqp;K3C%g274}50Ljywqe|qT-+)dTuzBhe~_vJ%zlVc zIJyBubV)v9mJEie9gAH>-2paG*Vzx#K$brhY~7L{#IE6Lng<-mS{4IbUozbOcv8vG zMDW~D8)THN1{e4a5O&ZUJZnLzJkJRAz83_3LEbOX>}RhXdqJ{$U4oHK8+NWU_kKYB zZKPj-)sc6Cyc+uA=mw~-giw?ed1Hk1jp4;&pr~iQE*m4=Wsn5@+%5f!`+|P%6iie< z*!6nDB1IGPAbW1HE9kc~PGL?n8Gjox%zAz~5dvZ+{v>`ky_f1QZct zv5Pp%kWCj_r`&uNu!zc_6x?&1l{ajk@NtPy!ne^&k(;IXd&^&KzSK&uJH(BH%jCYo zr)k;+J9&k9vouNp4eKWcqR;8j2YaTTWG)0U8xImUIcLTsb?5Qzq4Dm#UwVSq<2nu~ z1|6Ryj5p}`tmJm$p> zzpJqqF^~6^=9#|x;K%#e;w`1%Cl>D~NO0<&7vY`FGl~dDsfC7RfTwh6lL~93WXbQGx zgevcmNNWb<%1V71OYB|>INxGw>AEAPF~*E~J;c}ktN%B@(VOSvkTG*D&(yuWnfejB z-ZlEjgqu%m=myv5>rLD1sFrJF%lTlPw!4E5)6w0iO#K8@0Gwi5m*=+HLAepS+SbFO zL9wlQn&MO;!>7h|d2gaZ%GF>^6^Z@G&(?Z*Zt7=fC!UyDdgRl3eoyp|y%u^J1MpgS zOegP0b@JXoz48f`x@!y;#(6Y+04zmVzSvQvvhrf+jm=xU86MZ^dvo0M-6uB1_cex4 zjo?P**%ZgqPk46FQz%zMm*ozn1Sv1~{!X%{ercTGGGiYJYLjgYq{QGBE#y}34HM$Z z_D4)Ya2s(oWlM8_&vksVc{xyw${i$om)q%rhyzz^bn74^2WyO-#9f@n^XOn%WE4?s z3T+gdLeY#@&Y@|cODEAZ4n|fPzWrwYnt;8F0_nT~L=j(pl-382HG6D24E%A*h!nR3_IKusR$1|G2k%7rv|VuxJyTt*j7dKbusKRT}nEJ!FI$W ziOGb!K_7DX+ER!xd^lpZ%kRkucYOnY&A{KvAj-NL4(8n&!|D2$^dE3IuD=UJOs>6D z(J2orEyH8$3plls<3HRIM7(MIhm$#*0{Y(KnXR&ejWA0> zMn{>1y!u>#ps<&~Bkci+k2>@0$mPOx?|+*!gorW_!H1nCE}VKgDY4BwlsLDVbJcnZ zO4)&U+dxNsgZ;2-s(KPVQi6iCKbo@2Q%jj#^P^-Pj{ebfF;%&qDmluDs6@oEe-g|pp;G)Q8 zR2GwDGm6`AFJ154ht50~pBtL^22;9wMzcH7r_}Fv{~vy1l+38P*w7p$v+m42JOeA9 zPrInLYmD}$yd5K4KLH|2`xd0XgOKp634`9_b%d zva;~y_*Xe;!2`-Cch8Oj<=Wu0Bv;QKB)NL_DT-b_J6dj@Jw$Tz>@)NYrJtFY_pGnsOrJ}BxmD|yg|^XvHnq^k|l%B6Dx192~z*KZOJGF7Qr{+iTu2R#cyb4-5* zg2jSo=`g~!$WIh451O73{0)l6){&5cAXN$euDYj| zM+>nN#_)UBntDjgG&MaWB4&DMFlu^ekSz~R6)`>XK0yg)V<=S#zDGQggCEkbd(i)R ztZyNIEv%kCAf9rA?^Bj^C~Iv#`BQLu=p$7(>Ek&}Y8L!hJ6U@GhUZwUQ9p@w!90>a z_%zlB^GQ14Ke0|&K>iRb^JkGk!OearNxOd@*Y0;wtl?X7qj1Bsu1m{*5!dn(>n)Uq zNz;EBYx)he5N7ySY+sFw*jH%(yU7@je*8v_m#@`$QOoB>%&{1PR6*O4O&@d@+b8#s zF$o6Bw=o0dUJ?uCyEqG_RU+7ZlXd(1Uo4c?4%*-IgYq&D;s0f!h^{ZvjL*edda<_j z_pz3~Ph0wjSW7P<(f1$Y8@hlS8lMoHk8A0raV?#NDPL9m7gh0};u=~aMa6$r75_Qb z&eA}ITFyUW4RpUY(1o}LYI7Cq|Nm&Aw%j7>DCP!|;D0yaB;#e8@t?7bAJB~dip#iN z#CGhgJ$t3~*#6R-C8#;`sQMS{@tg4Q_mYz6R5~!+1Mu5KlsW&Whs~;lI zpzO>v2ZC^jLD%9p88fL5C)Y=Gl;35>X4f@wy4N*s zln<3rzR--#uM+Ex@}V-y?>3_o>;_s(__X;R6T|$r$S~*cq>U+*6uj3I_u3*;oM1YZ z*OPHO#`0n_y4b+qZt+Q$`^?yCqg%;1O)bUx5?o@&95&sHU81NhB^=SzQmih)0yE;V zffAgWZx}tG1kwF=-N(=+N5AmvAK*~S%4gJ4HZ< zEL%r>v~1@6W_>q;FEbmNz?+^&-!DP>#|TDeso-*xg$5rm*8=cCx(5fb#C$x9Xda#= zp4B|7Jd3FbnbtZi8+ytzqc^+|$n>JWu7d+;KXImEvw<7IS8%3S1ahVp1Z^O!dJ=*w zO_myb&@2mJ7|&84te7C?A3shI{X@@EUk#IMx(1og;vOQ74`o}f?HZO@M0MZ-ddw?X zq&1%8E2;4Dc{a2X!W`G<8a^|h9x`!E%5U=7vb=|oW+NG{c~x+gxs7v|#@NK9s=@;zVSH$6w=1fJ- zugE6BA?m*X)&%wQyGC)7S60(t2A2^m&xOp#aSjj*xkthHcZ+; zp)Gh@tz|VXE9o#%>_rs@z~R&b>#P1H{M+T*POPA|ledD}t_y(u^e#AH%lkhOmfU7e z1WS)#=V?e6qEtwMxhzfaKH5W|nJ}loZT5=U#iy^8=g$~XTxJOk@+tMEKNpp69O-#wZ;)d%vcxrHNFmF%?f&FkppXj00q2j<#K z=o~7&olf9`O>T%6C?CJy`N|S%>(*XMy)Xn`AP)Q6xwUa00K)n7n)#(&`%$UM26_%9 zebsF5)?Own#|`v6O+)l@iI)CA8t$WmfM{0!Mjk8P zIygiT7Xh#46m{>G1j3p!t(Akb?fl^=j=r*+6-)dy92|W?rSa*-eH3zw&*oE$FH-T@ zd^HF3&S@q~#rLUWzAO--5W2|T-4vS=UTQu{i7aR6g1AsV<=;zfoI_a5=6F040a0H5 zbntnaIM?Ksy|D(m{&({a+xI*EGX~>t<{u{hR!9RgFPNR8_@8EH$M*+)fI{T`F~~6R zzj=I;{V||#lAL7!%RGWW@S=H=!QbXP0JHxw&jIAM8EhD5D7m|B2J@})2;@EdqG7y6 z$&GA(aE^5ZfxNMJgwE@oJs*3cPP3bAglJ+Ig|^b@Y1jN zra~m_*pV|~N;%ZujIO4Cu~Wg6Mv zSzpgE5>a+e%ZHFS@)M05;5c>R2II&OV!8a&QGYMnfzID|8%A$0>0m(gEr07)M9W*? zb9gUennv*D1V!{sD||r_7x6!pw1^&V3uPDfke;t#N5fVRU$8_y z1%J^J^%VTDCF(f}g7e;he*L2A83OvNs^<}F4FbWV)@BATS$h~9vz`H%{j&8EKwc%d z^M4a9&HD?b`CZg=4jny$hWJAi6Gh|?w|TF*i2AfMjE}(=w-wH}T}WR>j-wo8R`I;A z4*&2CKDGF_joQ`VL3@mGb}hjw_ozx}2Z;9IZ-0uYcOSUJy$Ekx#~bTK^iEHlB=X|e z;s0;F^cd2^zyChTzp}-5(}XUVRK3)DHOmj?ah8X=pQ{v6-(L9F6A-+Oji|Sj z8L!;ekUi@CG`jDV2`<^!2*qz~NTR(o$60;{a`X!EBA}iQkekKyR*NE9cN6A3kHy=x z+1eF)CH4p{aQ4%8)zLDq^zZP;3>%K0(`@)3Ddv6SQ5BQby`KNcV)(u>7m!RBc%LHQI%?!=_ys7k5tV zcK$$Y!)r^GGR!@WUFsw~>7<>uwB%fWBenbq^uLpK<0(q54)lPN)&Y`ArM1b~=g6gG z?TnoLinVuf@5ED1+B@b+dKz*}E=qteLY4=vvN-6ZeISdKz(mNx%rOPv4LV8BIBB28 zMI57Nou;A02N0|OoM#?#Z1*HR=cIisYj&lcr01Qq&xwnngk$uA)2xhS%O+_+9?=2> zKH^L}eU0afPTC#|OJ$&^RbZ4K#XRh!tv65ezg1sS`Xf%-M^*xtDb}@b(orYvXHz?G z@JmkG4l}^{L&`BH&9Qh>B~sXzowPSCDJ(z0@rsl7iB*9G##4_wX=}LY@XzdAbnu;U z(rVh0CtK$c>Z?v#16wM0=v7cp@k0_ErX#>{3m2Z|YmQ?dmi6CBI_adzx(WoA3c53emaqr-GYGJOxvMba)O>3t`yt~Q4B5jU2RN+)sL+DYrlDjrJf z3LWRclGdGdT(BN4)({^$X@(Uk%STSyS&QTJ7RHnGF?7

~6-B^of)9om>^C+K~3C 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

1}JDWF&vkM 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%0DG@ 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

- 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
b7l7SWzJJ5(34 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 Iq3mk^2T mx) { - mx = s; - mxi = x; - } - } - cout << mxi << '\n'; + read(ll, n, a, b); + auto calc = [&] (ll k) { + k = max(ll(0), min(k, min(n, b))); + return k * (b + 1) - (k + 1) * k / 2 + a * (n - k); + }; + cout << max(calc(b - a - 1), calc(b - a)) << '\n'; } int main() { diff --git a/src/bin/c.cc b/src/bin/c.cc index 797f600..68356b3 100644 --- a/src/bin/c.cc +++ b/src/bin/c.cc @@ -499,19 +499,33 @@ void prep() { } void solve() { - read(int, n); - readvec(int, a, n); - ll s = 0; - int mx = 0; - int res = 0; - for (int i = 0; i < n; ++i) { - s += a[i]; - mx = max(mx, a[i]); - if (s == 2 * mx) { - res += 1; - } + read(ll, n, k); + if (k & 1) { + cout << "No\n"; + return; } - cout << res << '\n'; + vector res(n + 1); + k /= 2; + iota(res.begin(), res.end(), 0); + int mx = n - 1; + int l = 1, r = n; + while (k) { + while (mx > k) { + l += 1; + mx -= 1; + } + if (l >= r) { + cout << "No\n"; + return; + } + k -= mx; + res[l] = r, res[r] = l; + l += 1; + r -= 1; + mx -= 2; + } + cout << "Yes\n"; + putvec1(res); } int main() { diff --git a/src/bin/cf-1542d.cc b/src/bin/cf-1542d.cc new file mode 100644 index 0000000..f1d5392 --- /dev/null +++ b/src/bin/cf-1542d.cc @@ -0,0 +1,583 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +using mll = MLL; + +void prep() { +} + + +void solve() { + read(int, n); + vector a(n); + for (int i = 0; i < n; ++i) { + read(char, op); + if (op == '+') { + read(int, x); + a[i] = x; + } + } + + mll res = 0; + for (int i = 0; i < n; ++i) { + if (a[i] == 0) continue; + vector> dp(n + 1, vector(n + 1)); + dp[0][0] = 1; + for (int j = 1; j <= n; ++j) { + if (j != i + 1) { + dp[j] = dp[j - 1]; + } + if (a[j - 1] == 0) { + for (int k = 0; k < n; ++k) { + dp[j][k] += dp[j - 1][k + 1]; + } + dp[j][0] += dp[j - 1][0]; + } else if (a[j - 1] > a[i] or j < i + 1 and a[j - 1] == a[i]) { + for (int k = 0; k <= n; ++k) { + dp[j][k] += dp[j - 1][k]; + } + } else { + for (int k = 0; k < n; ++k) { + if (k == 0 and j > i + 1) { + dp[j][k] += dp[j - 1][k]; + } else { + dp[j][k + 1] += dp[j - 1][k]; + } + } + } + } + for (int k = 1; k <= n; ++k) { + res += dp[n][k] * a[i]; + } + // for (int j = 0; j <= n; ++j) { + // mll curr = 0; + // for (int k = 1; k <= n; ++k) { + // curr += dp[j][k]; + // } + // cerr << curr << ' '; + // } + // cerr << endl; + } + + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1556e.cc b/src/bin/cf-1556e.cc new file mode 100644 index 0000000..d9abba7 --- /dev/null +++ b/src/bin/cf-1556e.cc @@ -0,0 +1,571 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +template> struct sparse_table { + _Op op; + vector> st; + template + sparse_table(ReverseIterator __first, ReverseIterator __last, _Op&& __operation) { + op = __operation; + int n = distance(__first, __last); + st = vector>(n, vector<_Tp>(int(log2(n) + 1))); + int i = n - 1; + for (auto it = __first; it != __last; ++it) { + st[i][0] = *it; + for (int j = 1; i + (1 << j) <= n; ++j) { + st[i][j] = op(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]); + } + i -= 1; + } + } + _Tp query(size_t __start, size_t __end) { + int s = lg2(__end - __start + 1); + return op(st[__start][s], st[__end - (1 << s) + 1][s]); + } +}; + +void solve() { + read(int, n, q); + readvec(int, x, n), readvec(int, y, n); + vector a(n); + vector ps(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + (x[i - 1] - y[i - 1]); + } + sparse_table min_rmq(ps.rbegin(), ps.rend(), functor(min)), + max_rmq(ps.rbegin(), ps.rend(), functor(max)); + + while (q--) { + read(int, l, r); + --l, --r; + if (ps[r + 1] - ps[l] != 0 or max_rmq.query(l + 1, r + 1) - ps[l] > 0) { + cout << "-1\n"; + } else { + cout << ps[l] - min_rmq.query(l + 1, r + 1) << '\n'; + } + } + +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1562d1.cc b/src/bin/cf-1562d1.cc new file mode 100644 index 0000000..ba732e4 --- /dev/null +++ b/src/bin/cf-1562d1.cc @@ -0,0 +1,590 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 3 +// #define TOT_TEST_CASE 1000 + +void dump() { +} + +void dump_ignore() { +} + +void prep() { +} + +void solve() { + read(int, n, q); + vector a(n); + for (int i = 0; i < n; ++i) { + read(char, c); + a[i] = c == '+'; + } + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + ((i & 1) * 2 - 1) * a[i - 1]; + } + for (int i = n - 1; ~i; --i) { + ss[i] = ss[i + 1] + ((i & 1) * 2 - 1) * a[i]; + } + + while (q--) { + read(int, l, r); + --l, --r; + + int f = 0; + if ((r - l) & 1) { + if (ps[r + 1] - ps[l] == 0) { + cout << "0\n"; + continue; + } + f = 1; + --r; + } + // remove one number + int left = l, right = r; + #define calc(x) (((l + 1) & 1) * 2 - 1) * (ps[(x)] - ps[l]) + (((r + 1) & 1) * 2 - 1) * (ss[(x) + 1] - ss[r + 1]) + while (left < right) { + int mid = left + right >> 1; + int curr = calc(mid); + if (calc(l) >= 0 and calc(r) <= 0) { + if (curr > 0) { + left = mid + 1; + } else { + right = mid; + } + } else { + if (curr < 0) { + left = mid + 1; + } else { + right = mid; + } + } + } + if (f) { + cout << "2\n";// << left + 1 << ' ' << r + 2 << '\n'; + } else { + cout << "1\n";// << left + 1 << '\n'; + } + #undef calc + // for (int i = l; i <= r; ++i) { + // int left = (((l + 1) & 1) * 2 - 1) * (ps[i] - ps[l]); + // int right = (((r + 1) & 1) * 2 - 1) * (ss[i + 1] - ss[r + 1]); + // cerr << left + right << " "; + // } + // cerr << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1562d2.cc b/src/bin/cf-1562d2.cc new file mode 100644 index 0000000..e2fe219 --- /dev/null +++ b/src/bin/cf-1562d2.cc @@ -0,0 +1,590 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 3 +// #define TOT_TEST_CASE 1000 + +void dump() { +} + +void dump_ignore() { +} + +void prep() { +} + +void solve() { + read(int, n, q); + vector a(n); + for (int i = 0; i < n; ++i) { + read(char, c); + a[i] = c == '+'; + } + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + ((i & 1) * 2 - 1) * a[i - 1]; + } + for (int i = n - 1; ~i; --i) { + ss[i] = ss[i + 1] + ((i & 1) * 2 - 1) * a[i]; + } + + while (q--) { + read(int, l, r); + --l, --r; + + int f = 0; + if ((r - l) & 1) { + if (ps[r + 1] - ps[l] == 0) { + cout << "0\n"; + continue; + } + f = 1; + --r; + } + // remove one number + int left = l, right = r; + #define calc(x) (((l + 1) & 1) * 2 - 1) * (ps[(x)] - ps[l]) + (((r + 1) & 1) * 2 - 1) * (ss[(x) + 1] - ss[r + 1]) + while (left < right) { + int mid = left + right >> 1; + int curr = calc(mid); + if (calc(l) >= 0 and calc(r) <= 0) { + if (curr > 0) { + left = mid + 1; + } else { + right = mid; + } + } else { + if (curr < 0) { + left = mid + 1; + } else { + right = mid; + } + } + } + if (f) { + cout << "2\n" << left + 1 << ' ' << r + 2 << '\n'; + } else { + cout << "1\n" << left + 1 << '\n'; + } + #undef calc + // for (int i = l; i <= r; ++i) { + // int left = (((l + 1) & 1) * 2 - 1) * (ps[i] - ps[l]); + // int right = (((r + 1) & 1) * 2 - 1) * (ss[i + 1] - ss[r + 1]); + // cerr << left + right << " "; + // } + // cerr << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1567e.cc b/src/bin/cf-1567e.cc new file mode 100644 index 0000000..f355dba --- /dev/null +++ b/src/bin/cf-1567e.cc @@ -0,0 +1,714 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +template> class segtree { +private: + using size_type = uint64_t; + using info_type = Addable_Info_t; + using tag_type = Tag_t; + size_type _max; + vector d; + vector b; + void pull(size_type p) { + d[p] = d[p * 2] + d[p * 2 + 1]; + } + void push(size_type p, size_type left_len, size_type right_len) { + d[p * 2].apply(b[p], left_len), d[p * 2 + 1].apply(b[p], right_len); + b[p * 2].apply(b[p]), b[p * 2 + 1].apply(b[p]); + b[p] = tag_type(); + } + void set(size_type s, size_type t, size_type p, size_type x, const info_type& c) { + if (s == t) { + d[p] = c; + return; + } + size_type m = s + (t - s >> 1); + if (s != t) push(p, m - s + 1, t - m); + if (x <= m) set(s, m, p * 2, x, c); + else set(m + 1, t, p * 2 + 1, x, c); + pull(p); + } + + void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) { + if (l <= s && t <= r) { + d[p].apply(c, t - s + 1); + b[p].apply(c); + return; + } + size_type m = s + (t - s >> 1); + push(p, m - s + 1, t - m); + if (l <= m) range_apply(s, m, p * 2, l, r, c); + if (r > m) range_apply(m + 1, t, p * 2 + 1, l, r, c); + pull(p); + } + info_type range_query(size_type s, size_type t, size_type p, size_type l, size_type r) { + if (l <= s && t <= r) { + return d[p]; + } + size_type m = s + (t - s >> 1); + info_type res = {}; + push(p, m - s + 1, t - m); + if (l <= m) res = res + range_query(s, m, p * 2, l, r); + if (r > m) res = res + range_query(m + 1, t, p * 2 + 1, l, r); + return res; + } + void build(const Sequence& a, size_type s, size_type t, size_type p) { + if (s == t) { + d[p] = a[s]; + return; + } + int m = s + (t - s >> 1); + build(a, s, m, p * 2); + build(a, m + 1, t, p * 2 + 1); + pull(p); + } +public: + segtree(size_type __max) : d(4 * __max), b(4 * __max), _max(__max - 1) {} + segtree(const Sequence& a) : segtree(a.size()) { + build(a, {}, _max, 1); + } + void set(size_type i, const info_type& c) { + set({}, _max, 1, i, c); + } + + void range_apply(size_type l, size_type r, const tag_type& c) { + range_apply({}, _max, 1, l, r, c); + } + void apply(size_type i, const tag_type& c) { + range_apply(i, i, c); + } + info_type range_query(size_type l, size_type r) { + return range_query({}, _max, 1, l, r); + } + info_type query(size_type i) { + return range_query(i, i); + } + Sequence serialize() { + Sequence res = {}; + for (size_type i = 0; i <= _max; ++i) { + res.push_back(query(i)); + } + return res; + } + const vector& get_d() { + return d; + } +}; +struct Tag { + ll val = 0; + void apply(const Tag& rhs) { + val += rhs.val; + } +}; +struct Info { + ll val = 0; + void apply(const Tag& rhs, size_t len) { + val += rhs.val * len; + } +}; +Info operator+(const Info &a, const Info &b) { + return {a.val + b.val}; +} + +void solve() { + read(int, n, q); + readvec(int, a, n); + set gaps; + gaps.emplace(0), gaps.emplace(n); + int cnt = 0; + segtree tr(n + 1); + for (int i = 1; i <= n; ++i) { + if (i - 2 >= 0 and a[i - 1] < a[i - 2] ) { + gaps.emplace(i - 1); + cnt = 0; + } + tr.set(i, { cnt + 1 }); + ++cnt; + } + // cerr << "tr = "; + // for (auto&& x : tr.serialize()) { + // cerr << x.val << ' '; + // } + // cerr << endl; + + while (q--) { + read(int, op); + if (op == 1) { + read(int, i, x); + --i; + if (i + 1 < n) { + auto ub = gaps.upper_bound(i + 1); + auto lb = prev(gaps.lower_bound(i + 1)); + if (a[i] <= a[i + 1]) { + tr.range_apply(i + 2, *ub, { - (i - *lb + 1) }); + gaps.emplace(i + 1); + } + } + if (i - 1 >= 0) { + auto lb = prev(gaps.lower_bound(i)); + if (a[i] >= a[i - 1] and x < a[i - 1]) { + tr.apply(i + 1, { - (i - *lb) }); + gaps.emplace(i); + } else if (a[i] < a[i - 1] and x >= a[i - 1]) { + tr.apply(i + 1, { i - *lb }); + gaps.erase(i); + } + } + if (i + 1 < n) { + auto ub = gaps.upper_bound(i + 1); + auto lb = prev(gaps.lower_bound(i + 1)); + if (x <= a[i + 1]) { + tr.range_apply(i + 2, *ub, { i - *lb + 1 }); + gaps.erase(i + 1); + } + } + a[i] = x; + // debug(a); + // debugvec(gaps); + // cerr << "tr = "; + // for (auto&& x : tr.serialize()) { + // cerr << x.val << ' '; + // } + // cerr << endl; + } else { + read(int, l, r); + --l, --r; + auto ub = prev(gaps.lower_bound(r + 1)); + auto lb = gaps.lower_bound(l + 1); + if (*ub < *lb) { + cout << ll(1) * (r - l + 1) * (r - l + 2) / 2 << '\n'; + } else { + // debug(make_tuple(*lb, *ub)); + ll res = 0; + res += ll(1) * (*lb - l) * (*lb - l + 1) / 2; + res += ll(1) * (r + 1 - *ub) * (r + 1 - *ub + 1) / 2; + if (*lb + 1 <= *ub) res += tr.range_query(*lb + 1, *ub).val; + // res += tr.query(*ub).val - tr.query(*lb).val; + cout << res << '\n'; + } + } + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1580c.cc b/src/bin/cf-1580c.cc new file mode 100644 index 0000000..c119e90 --- /dev/null +++ b/src/bin/cf-1580c.cc @@ -0,0 +1,610 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +constexpr int t = 3000; +int state_run[t + 1][t + 1], state_maint[t + 1][t + 1]; + +void solve() { + read(int, n, m); + readvec(pii, info, n); + vector add_time(n); + vector running(n), maintenance(n); + int running_cnt = 0, maintenance_cnt = 0; + vector> event_run(m + 1), event_maint(m + 1); + + for (int i = 1; i <= m; ++i) { + int delay = -1; + read(int, op, x); + --x; + int period = info[x].first + info[x].second; + if (op == 1) { + add_time[x] = i; + if (period <= t) { + state_run[period][i % period] += 1; + state_maint[period][(i + info[x].first) % period] += 1; + ++maintenance_cnt; // offset + } else { + running[x] = 1; + ++running_cnt; + if (i + info[x].first <= m) event_maint[i + info[x].first].emplace_back(x, i); + } + } else { + if (period <= t) { + delay = x; + } else { + if (running[x]) { + running[x] = 0; + --running_cnt; + } else if (maintenance[x]) { + maintenance[x] = 0; + --maintenance_cnt; + } + add_time[x] = 0; + } + } + + for (auto&& [x, raw_time] : event_maint[i]) { + if (add_time[x] != raw_time) continue; + running[x] = 0; + --running_cnt; + maintenance[x] = 1; + ++maintenance_cnt; + if (i + info[x].second <= m) event_run[i + info[x].second].emplace_back(x, raw_time); + } + + for (auto&& [x, raw_time] : event_run[i]) { + if (add_time[x] != raw_time) continue; + running[x] = 1; + ++running_cnt; + maintenance[x] = 0; + --maintenance_cnt; + if (i + info[x].first <= m) event_maint[i + info[x].first].emplace_back(x, raw_time); + } + + // debug(make_tuple(running_cnt, maintenance_cnt)); + for (int j = 1; j <= t; ++j) { + maintenance_cnt -= state_run[j][i % j]; + running_cnt += state_run[j][i % j]; + + running_cnt -= state_maint[j][i % j]; + maintenance_cnt += state_maint[j][i % j]; + } + + if (delay != -1) { + state_run[period][add_time[delay] % period] -= 1; + state_maint[period][(add_time[delay] + info[delay].first) % period] -= 1; + if ((i - add_time[delay]) % period < info[delay].first) { + // current running + --running_cnt; + } else { + --maintenance_cnt; + } + add_time[delay] = 0; + } + + cout << maintenance_cnt << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1592d.cc b/src/bin/cf-1592d.cc new file mode 100644 index 0000000..8e23718 --- /dev/null +++ b/src/bin/cf-1592d.cc @@ -0,0 +1,608 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +int query(const unordered_set& nodes) { + assert(nodes.size() > 1); + cout << "? " << nodes.size(); + for (auto&& x : nodes) { + cout << ' ' << x; + } + cout << endl; + read(int, x); + return x; +} + +void claim(int a, int b) { + cout << "! " << a << ' ' << b << endl; +} + +void solve() { + read(int, n); + vector edges(n - 1); + vector mark(n - 1, 1); + for (int i = 0; i < n - 1; ++i) { + read(int, u, v); + edges[i] = { u, v }; + } + + unordered_set q; + for (int i = 1; i <= n; ++i) { + q.emplace(i); + } + int prev = query(q); + + while (1) { + int m = count(mark.begin(), mark.end(), 1); + if (m == 1) break; + int target = m / 2; + vector> e(n + 1); + for (int i = 0; i < n - 1; ++i) { + if (not mark[i]) continue; + edgew(e, edges[i].first, edges[i].second, i); + } + unordered_set q; + vector new_mark(n - 1); + vector layer(n + 1); + vector ass(n + 1); + vector father(n + 1); + vector idx; + auto dfs = [&] (auto dfs, int v, int pa, int l) -> void { + idx.emplace_back(v); + father[v] = pa; + layer[v] = l; + for (auto&& [u, i] : e[v]) { + if (u == pa) continue; + ass[u] = i; + dfs(dfs, u, v, l + 1); + } + }; + ass[1] = -1; + dfs(dfs, 1, 0, 0); + if (idx.size() < target) { + exit(825); + } + partial_sort(idx.begin(), idx.begin() + target, idx.end(), [&] (int i, int j) { return layer[i] > layer[j]; }); + for (int i = 0; i < target; ++i) { + q.emplace(idx[i]); + q.emplace(father[idx[i]]); + new_mark[ass[idx[i]]] = 1; + } + int curr = query(q); + if (curr != prev) { + for (int i = 0; i < n - 1; ++i) { + if (not mark[i]) continue; + new_mark[i] = new_mark[i] ^ 1; + } + } + mark = new_mark; + } + + for (int i = 0; i < n - 1; ++i) { + if (mark[i]) { + claim(edges[i].first, edges[i].second); + } + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1594e1.cc b/src/bin/cf-1594e1.cc new file mode 100644 index 0000000..0ed5884 --- /dev/null +++ b/src/bin/cf-1594e1.cc @@ -0,0 +1,565 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +unordered_map mp = { + {"white", 0}, + {"yellow", 1}, + {"green", 2}, + {"blue", 3}, + {"red", 4}, + {"orange", 5}, +}; + +using mll = MLL; + +void solve() { + read(int, k); + vector> regular(k); + for (int i = k - 1; ~i; --i) { + if (i != k - 1) { + array left = {}, right = {}; + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + left[j] += regular[i + 1][l]; + } + } + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + right[j] += regular[i + 1][l]; + } + } + for (int j = 0; j < 6; ++j) { + regular[i][j] = left[j] * right[j]; + } + } else { + regular[i] = { 1, 1, 1, 1, 1, 1 }; + } + } + + cout << accumulate(regular[0].begin(), regular[0].end(), mll(0)) << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1594e2.cc b/src/bin/cf-1594e2.cc new file mode 100644 index 0000000..7439a15 --- /dev/null +++ b/src/bin/cf-1594e2.cc @@ -0,0 +1,623 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +unordered_map mp = { + {"white", 0}, + {"yellow", 1}, + {"green", 2}, + {"blue", 3}, + {"red", 4}, + {"orange", 5}, +}; + +using mll = MLL; + +void solve() { + read(int, k); + read(int, n); + vector> add(k); + vector, safe_hash>> kept(k); + vector> regular(k); + while (n--) { + read(ll, x); + read(string, t); + add[lg2(x)].emplace_back(x, mp[t]); + } + + for (int i = k - 1; ~i; --i) { + if (i != k - 1) { + array left = {}, right = {}; + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + left[j] += regular[i + 1][l]; + } + } + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + right[j] += regular[i + 1][l]; + } + } + for (int j = 0; j < 6; ++j) { + regular[i][j] = left[j] * right[j]; + } + // debugvec(regular[i]); + vector sc; + for (auto&& [x, _] : kept[i + 1]) { + sc.emplace_back(x / 2); + } + for (auto&& x : sc) { + array left = {}, right = {}; + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + if (kept[i + 1].count(x * 2)) { + left[j] += kept[i + 1][x * 2][l]; + } else { + left[j] += regular[i + 1][l]; + } + } + } + for (int j = 0; j < 6; ++j) { + for (int l = 0; l < 6; ++l) { + if (j / 2 == l / 2) continue; + if (kept[i + 1].count(x * 2 + 1)) { + right[j] += kept[i + 1][x * 2 + 1][l]; + } else { + right[j] += regular[i + 1][l]; + } + } + } + for (int j = 0; j < 6; ++j) { + kept[i][x][j] = left[j] * right[j]; + } + } + } else { + regular[i] = { 1, 1, 1, 1, 1, 1 }; + } + for (auto&& [x, must] : add[i]) { + if (not kept[i].count(x)) { + kept[i][x] = regular[i]; + } + for (int j = 0; j < 6; ++j) { + if (j == must) continue; + kept[i][x][j] = 0; + } + } + // for (auto&& [x, v] : kept[i]) { + // cerr << "x = " << x << ", "; + // debugvec(v); + // } + // cerr << endl; + } + + if (kept[0].count(1)) { + cout << accumulate(kept[0][1].begin(), kept[0][1].end(), mll(0)) << '\n'; + } else { + cout << accumulate(regular[0].begin(), regular[0].end(), mll(0)) << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1978a.cc b/src/bin/cf-1978a.cc new file mode 100644 index 0000000..9b7e3f1 --- /dev/null +++ b/src/bin/cf-1978a.cc @@ -0,0 +1,531 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + readvec(int, a, n); + cout << a[n - 1] + *max_element(a.begin(), a.begin() + n - 1) << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1978b.cc b/src/bin/cf-1978b.cc new file mode 100644 index 0000000..c8d3263 --- /dev/null +++ b/src/bin/cf-1978b.cc @@ -0,0 +1,534 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(ll, n, a, b); + auto calc = [&] (ll k) { + k = max(ll(0), min(k, min(n, b))); + return k * (b + 1) - (k + 1) * k / 2 + a * (n - k); + }; + cout << max(calc(b - a - 1), calc(b - a)) << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1978c.cc b/src/bin/cf-1978c.cc new file mode 100644 index 0000000..68356b3 --- /dev/null +++ b/src/bin/cf-1978c.cc @@ -0,0 +1,555 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(ll, n, k); + if (k & 1) { + cout << "No\n"; + return; + } + vector res(n + 1); + k /= 2; + iota(res.begin(), res.end(), 0); + int mx = n - 1; + int l = 1, r = n; + while (k) { + while (mx > k) { + l += 1; + mx -= 1; + } + if (l >= r) { + cout << "No\n"; + return; + } + k -= mx; + res[l] = r, res[r] = l; + l += 1; + r -= 1; + mx -= 2; + } + cout << "Yes\n"; + putvec1(res); +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1978d.cc b/src/bin/cf-1978d.cc new file mode 100644 index 0000000..06952d7 --- /dev/null +++ b/src/bin/cf-1978d.cc @@ -0,0 +1,552 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n, c); + readvec(ll, a, n); + a[0] += c; + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = max(ps[i - 1], a[i - 1]); + } + for (int i = n - 1; ~i; --i) { + ss[i] = max(ss[i + 1], a[i]); + } + ll left = 0; + for (int i = 0; i < n; ++i) { + if (ps[i] < a[i] and ss[i + 1] <= a[i]) { + cout << 0; + } else { + int res = i; + if (ss[i + 1] > a[i] + left) { + res += 1; + } + cout << res; + } + cout << " \n"[i + 1 == n]; + left += a[i]; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1978e.cc b/src/bin/cf-1978e.cc new file mode 100644 index 0000000..7d8cf51 --- /dev/null +++ b/src/bin/cf-1978e.cc @@ -0,0 +1,585 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + vector a(n), b(n); + for (int i = 0; i < n; ++i) { + read(char, c); + a[i] = c - '0'; + } + for (int i = 0; i < n; ++i) { + read(char, c); + b[i] = c - '0'; + } + + vector c = b; + vector mc(n); + for (int i = 0; i + 2 < n; ++i) { + if (a[i] == a[i + 2] and a[i] == 0) { + c[i + 1] = 1; + if (b[i + 1] != 1) { + mc[i + 1] = 1; + } + } + } + + vector d = a; + vector md(n); + vector ps(n + 1); + for (int i = 0; i + 2 < n; ++i) { + if (c[i] == c[i + 2] and c[i] == 1) { + d[i + 1] = 1; + if (a[i + 1] != 1) { + md[i + 1] = 1; + } + } + } + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + d[i - 1]; + } + + read(int, q); + while (q--) { + read(int, l, r); + --l, --r; + int res = ps[r + 1] - ps[l]; + unordered_set del; + if (l + 1 <= r and mc[l] and md[l + 1]) { + del.emplace(l + 1); + } + if (r - 1 >= l and mc[r] and md[r - 1]) { + del.emplace(r - 1); + } + if (md[l]) { + del.emplace(l); + } + if (md[r]) { + del.emplace(r); + } + cout << res - del.size() << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/ctext_out.cc b/src/bin/ctext_out.cc index 1cac8ce..5cf237e 100644 --- a/src/bin/ctext_out.cc +++ b/src/bin/ctext_out.cc @@ -23,47 +23,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -429,6 +404,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} @@ -499,24 +491,6 @@ void prep() { } void solve() { - read(string, s); - int n = s.size(); - vector ps(n + 1); - for (int i = 1; i < n; ++i) { - ps[i + 1] = ps[i - 1]; - if ((s[i] == '[' or s[i] == ']') and (s[i - 1] == '(' or s[i - 1] == ')')) { - ps[i + 1] += 1; - } else if ((s[i] == '(' or s[i] == ')') and (s[i - 1] == '[' or s[i - 1] == ']')) { - ps[i + 1] -= 1; - } - } - - read(int, q); - while (q--) { - read(int, l, r); - --l, --r; - cout << abs(ps[r + 1] - ps[l]) << '\n'; - } } int main() { diff --git a/src/bin/d.cc b/src/bin/d.cc index fb4df84..06952d7 100644 --- a/src/bin/d.cc +++ b/src/bin/d.cc @@ -499,38 +499,30 @@ void prep() { } void solve() { - read(int, n, m); - vector> a(n, vector(m)); - vector cnt(n); - int mxi = 0; + read(int, n, c); + readvec(ll, a, n); + a[0] += c; + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = max(ps[i - 1], a[i - 1]); + } + for (int i = n - 1; ~i; --i) { + ss[i] = max(ss[i + 1], a[i]); + } + ll left = 0; for (int i = 0; i < n; ++i) { - for (int j = 0; j < m; ++j) { - read(char, c); - a[i][j] = c == '#'; - cnt[i] += a[i][j]; - } - if (cnt[i] > cnt[mxi]) { - mxi = i; + if (ps[i] < a[i] and ss[i + 1] <= a[i]) { + cout << 0; + } else { + int res = i; + if (ss[i + 1] > a[i] + left) { + res += 1; + } + cout << res; } + cout << " \n"[i + 1 == n]; + left += a[i]; } - - int left = 0; - for (int j = 0; j < m; ++j) { - if (a[mxi][j]) { - left = j; - break; - } - } - - int right = 0; - for (int j = m - 1; ~j; --j) { - if (a[mxi][j]) { - right = j; - break; - } - } - - cout << mxi + 1 << ' ' << (left + right) / 2 + 1 << '\n'; } int main() { diff --git a/src/bin/e.cc b/src/bin/e.cc index af0c087..7d8cf51 100644 --- a/src/bin/e.cc +++ b/src/bin/e.cc @@ -499,18 +499,63 @@ void prep() { } void solve() { - read(int, x, y, z); - read(ll, k); - ll res = 0; - for (int a = 1; a <= x; ++a) { - for (int b = 1; b <= y; ++b) { - if (k / a / b * b * a != k) continue; - ll c = k / a / b; - if (c > z) continue; - res = max(res, ll(1) * (x - a + 1) * (y - b + 1) * (z - c + 1)); + read(int, n); + vector a(n), b(n); + for (int i = 0; i < n; ++i) { + read(char, c); + a[i] = c - '0'; + } + for (int i = 0; i < n; ++i) { + read(char, c); + b[i] = c - '0'; + } + + vector c = b; + vector mc(n); + for (int i = 0; i + 2 < n; ++i) { + if (a[i] == a[i + 2] and a[i] == 0) { + c[i + 1] = 1; + if (b[i + 1] != 1) { + mc[i + 1] = 1; + } } } - cout << res << '\n'; + + vector d = a; + vector md(n); + vector ps(n + 1); + for (int i = 0; i + 2 < n; ++i) { + if (c[i] == c[i + 2] and c[i] == 1) { + d[i + 1] = 1; + if (a[i + 1] != 1) { + md[i + 1] = 1; + } + } + } + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + d[i - 1]; + } + + read(int, q); + while (q--) { + read(int, l, r); + --l, --r; + int res = ps[r + 1] - ps[l]; + unordered_set del; + if (l + 1 <= r and mc[l] and md[l + 1]) { + del.emplace(l + 1); + } + if (r - 1 >= l and mc[r] and md[r - 1]) { + del.emplace(r - 1); + } + if (md[l]) { + del.emplace(l); + } + if (md[r]) { + del.emplace(r); + } + cout << res - del.size() << '\n'; + } } int main() { diff --git a/src/bin/std.in b/src/bin/std.in index 8c94674..67ade6d 100644 --- a/src/bin/std.in +++ b/src/bin/std.in @@ -1,14 +1,23 @@ 3 -([))[)()][]] -3 -1 12 -4 9 -3 6 -)))))) +4 +1111 +0000 2 -2 3 -1 4 -[] -1 1 2 +2 4 +4 +1010 +1101 +2 +1 3 +1 4 +6 +010101 +011010 +5 +2 3 +1 6 +2 5 +4 4 +3 6 diff --git a/src/bin/template.cc b/src/bin/template.cc index 562b198..5cf237e 100644 --- a/src/bin/template.cc +++ b/src/bin/template.cc @@ -23,47 +23,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -429,6 +404,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} diff --git a/src/bin/test.cc b/src/bin/test.cc index d039bc3..18a1bf4 100644 --- a/src/bin/test.cc +++ b/src/bin/test.cc @@ -1,7 +1,547 @@ -#include +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with C++17. + */ + +#include using namespace std; -int main() { - int i; - ++++++++++++++++++++++++++++--i; +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) remove_reference::type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +using ld = long double; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using ld = long double; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; +using pid = pair; +using pdi = pair; +using pld = pair; +using pdl = pair; +using pdd = pair; +using tlll = tuple; +using tlld = tuple; +using tlli = tuple; +using tldl = tuple; +using tldd = tuple; +using tldi = tuple; +using tlil = tuple; +using tlid = tuple; +using tlii = tuple; +using tdll = tuple; +using tdld = tuple; +using tdli = tuple; +using tddl = tuple; +using tddd = tuple; +using tddi = tuple; +using tdil = tuple; +using tdid = tuple; +using tdii = tuple; +using till = tuple; +using tild = tuple; +using tili = tuple; +using tidl = tuple; +using tidd = tuple; +using tidi = tuple; +using tiil = tuple; +using tiid = tuple; +using tiii = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + // return (factor, count, factor ** count) + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + ll x = 1; + cout << chmin(x, 0) << ' ' << x << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif } diff --git a/src/bin/test.py b/src/bin/test.py index abeaf0d..a4003e1 100644 --- a/src/bin/test.py +++ b/src/bin/test.py @@ -7,8 +7,9 @@ import io PRIME = 998_244_353 if __name__ == '__main__': - N = 1000 - print(1) - print(3, N * N // 3) - for i in range(3): - print(*(choice(['#', '.']) for _ in range(N * N // 3)), sep='') + N = 200000 + print(N, N) + for _ in range(N): + print(226, 226) + for i in range(1, N + 1): + print(1, i)