From 30294d8209c04395584c61d370fa98e780020125 Mon Sep 17 00:00:00 2001 From: tusharsk Date: Tue, 25 Dec 2018 11:04:31 +0530 Subject: [PATCH] Added Lecture 1 --- Lecture_1/extended.cpp | 14 ++++ Lecture_1/functors | Bin 0 -> 43000 bytes Lecture_1/functors.cpp | 151 ++++++++++++++++++++++++++++++++++++++++ Lecture_1/input.in | 2 + Lecture_1/output.out | 5 ++ Lecture_1/searching | Bin 0 -> 28096 bytes Lecture_1/searching.cpp | 99 ++++++++++++++++++++++++++ Lecture_1/set | Bin 0 -> 50816 bytes Lecture_1/set.cp | 0 Lecture_1/set.cpp | 131 ++++++++++++++++++++++++++++++++++ Lecture_1/stl | Bin 0 -> 53280 bytes Lecture_1/stl.cpp | 123 ++++++++++++++++++++++++++++++++ Lecture_1/strtok | Bin 0 -> 9488 bytes Lecture_1/strtok.cpp | 19 +++++ Lecture_2/divisible | Bin 0 -> 61392 bytes Lecture_2/divisible.cpp | 108 ++++++++++++++++++++++++++++ Lecture_2/inclusion | Bin 0 -> 25712 bytes Lecture_2/inclusion.cpp | 112 +++++++++++++++++++++++++++++ 18 files changed, 764 insertions(+) create mode 100644 Lecture_1/extended.cpp create mode 100755 Lecture_1/functors create mode 100644 Lecture_1/functors.cpp create mode 100644 Lecture_1/input.in create mode 100644 Lecture_1/output.out create mode 100755 Lecture_1/searching create mode 100644 Lecture_1/searching.cpp create mode 100755 Lecture_1/set create mode 100644 Lecture_1/set.cp create mode 100644 Lecture_1/set.cpp create mode 100755 Lecture_1/stl create mode 100644 Lecture_1/stl.cpp create mode 100755 Lecture_1/strtok create mode 100644 Lecture_1/strtok.cpp create mode 100755 Lecture_2/divisible create mode 100644 Lecture_2/divisible.cpp create mode 100755 Lecture_2/inclusion create mode 100644 Lecture_2/inclusion.cpp diff --git a/Lecture_1/extended.cpp b/Lecture_1/extended.cpp new file mode 100644 index 0000000..c18b9fa --- /dev/null +++ b/Lecture_1/extended.cpp @@ -0,0 +1,14 @@ +ll x,y; +template T gcd(T a,T b) +{ + if(a==0) + { + x=0,y=1; return b; + } + T gc=gcd(b%a,a); + T temp; + temp=x; + x=y-(b/a)*temp; + y=temp; + return gcd; +} diff --git a/Lecture_1/functors b/Lecture_1/functors new file mode 100755 index 0000000000000000000000000000000000000000..713f700319a8d56f621a34585f9566ec41fcde10 GIT binary patch literal 43000 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 SJ5~7`I>ErP-O(^-`Tq^6ke*%u literal 0 HcmV?d00001 diff --git a/Lecture_1/functors.cpp b/Lecture_1/functors.cpp new file mode 100644 index 0000000..b1d4677 --- /dev/null +++ b/Lecture_1/functors.cpp @@ -0,0 +1,151 @@ +#include +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + + + +#include +#include +#include +using namespace std; + +class Compare{ +public: + bool operator()(pair a,pair b){ + + + if(a.f maxHeap; + + priority_queue ,vector >,Compare> q; //Min Heap + + ll n,i; + cin>>n; + + vector > v(n); + FOI(i,0,n-1) + { + cin>>v[i].f; + cin>>v[i].s; + } + for(int i=0;i>n; + ll i,x; + priority_queue , functors > pq; + FOI(i,0,n-1) + { + cin>>x; + pq.push(x); + } + + while(!pq.empty()) + { + x=pq.top(); + pq.pop(); + cout<iWossX8GUnMlAi2^6jLVKOrzQztXonF$0J zDjG_g1}fXNUAEQMuC!IlT77GMZS~bqSfj4nVzsWXW!IGIb`Z3vRHLHV@45HfXP&v4 z38}lE{^ixldG7a|d+xdSo_p?no_XeSleh7zJcq+jDbKjVpxphZc?2Z?8pc3KWErb5 zPBT1)(>TwV0HhEfkKhoMSBeg^YDJ4!E+4c2pPD=g)Z}@@g`($5*ickiNR;YJCl6mr z>YpdGiW;zz5|txcQwu0ZbX^9$o9%E~%AJBwFqJEEi7e(^{ydQd^@s~ar?5UnRk_ci9N9VERLX+QTwkt!DdYMS z<>nffMZ#^>RhLDA3nJlYch7>Jn(77BRjx$LRUz6<`bl=#%2lE!)sIf($mVJIkPi?) z@7$XTR$MUuMCFWIU3)v8+4ld92Y*jIr9-x>H17gOfkW9n75v1vCg#oa{yU~qYQGC$P1|7oE%pOqcjD4k{@ud6Zuk>??jH| zyEJ(NewRoF1D9MvzE*9R=K9W9)J!D(@uX=QW<%==GZ>18)`t_xP`q_TT_hF_wffs4 zA<4_mxo%}kvL+l$m~H+w=Lc@K7ck zPk5VqaM_Y{FEY(!M?AI>DuSjz5{U(*jHb6v=)Eqwu~QVQ41}ZNB9dr;5_h1(A2*Y6 ze>j;tD+mj(V*EJN_2OIh#64bh8_#tURasXRu7yV3nl-gc8%(#WQo?K2K)4Dc zDg#O$XugO5lrKPz{+qzG&~V^CCwxK8&!)MXCQ~HtXa8_O@^a>vL&LOi_;k|q_l$MV z2%km~<_?=YU8?x;+)r*mq%Sn?Vfp0zZy)jOW2b;H;X&4W|uPF`V#uHk@>+RBprValXceQynUKY&gYAm3%fF9b}~@8;*{) z(i$5+#X=2Zoef9FTdBi_pJ}0($2Pp!hWFU;5*zO8JyzuFFI;tz)9`(HAX%7t8%$sC zfuj93AzY3uTndqqIraEkGRuQ2%6E{^k)aW!IiIFHb^VcpB40sy8qy;JB7ZUEX}LLa zzsO%mc^Z-N+qP$1sU!y#A`H^ywKTLV*>LX5(Z$`d-7xE&xUvKDp_6xqg!@k~EjyJV73=Wjf z@EE?qeFNtZ8C*ZvW27!Z!4vHzv+51w;eS8}uktO}1>)-+F81}kx?$$Sq>8$A>e|PN zF){?98dV3{U~{srERj(Rx-<2 zyIcj<-ckj~gyB>`J4%@aW&8oTcndDll?z?U5T% zhOT{mTT;Hh?jc{_suz8|TZWA8i4W7T9yNV~Ua|cG728Z-zjxTT#5;6TEv|-qpF$38 zJrkMZzLKAKQ@(%ny}RW_=sE6tHZ%-4CE-3?P)4y+M}J0T*6tV8_Z};S3BxeqxUU~Y zsgk}Ie0_r{FT4r9+J}J`Wr=s(=QzljzJpH*4K48LH9=p0!JK*2{iw}7;M?iF+t>HR zQnSxVSg3=g*|T2B@AdY^P0eHtS7Tlh870Mvv=i30njiow(yR1?`k;=lCu{im<* z*Qrj(Y#T_HJl2F=>f;mwQ-@B9HV74YnJRvqO~tQ;jQ3$x&vqe%K9G%mn7eo~CS;#? zPrr8$I!jb^CMtUDbEub$ZAa!2(FvlT22;O-XY{@3>tB%y`YNZ04o@yQTIK7b28j+{ z0tp{PQ2MK6v)~A`znA7j!AYG%?A`-wKA(1kzAY#Fx`%tWoOE zCJg)L@ALIN>FX=}H_3xX7d|a7k4t-DPN{Hv;qHT}Con!}%C3wl!MulTJaYDVRy%0Q z(#+~7x?+eu`92!!{#8SQC8tsY+~Md98VnN0*rbF%h++Eu`(hmC*~Y%-zf6m1uirjD3w<~OC898=I_n$S|1=JmeA`Ix)bSc}21&)Q+k+Wu83_|b88&Qhry zT2>6F-K{V+^xnvb)r;BnppiS9ifpXTseIUQ@ci0QD%7zm~^o6zNRA8Vl~S$<^(Fjyy?S4$XpCdphMMdEtllarE>n2qQ5zKcyf8M zoMO^>Wv9MOEgi(Z*zwf6yOb-I7rsPn1E?fsLr zSKc_GdS#T)z>~9Xp4Lj`!@fcEk*Eik9@;-sopdd3vn*d!GjsGdY_aeW>DGPH+mzEG z#Oe{A<(f)unw^%7!0wBICv@|FGg@bByIfwTUD$?w^;EZZQ{;V!*B{^ zTM7$_WmH-yGdlmwW(?0qRY%6ek}dcJqzzshek6>`KCU8C4yJY;w=X+ZOYL4pksWty zLhnv=D{ThJ4dnXsWvWgKwBLbJwcoTNh_+j^&v~_)kD8crX}pfASmHfi@{Iumy~0!@ z)WZU7`-X69JD7@y>Ue?DhE{60lr-Q@NQ^Y~KDOMyPR#~t8@q?G0#lmB!^VDXe{}M+Eul!jXUQ| zpXS8P`pyOCgSIsEz0=V5+s65?(gx7C@5B7mkKRCIzx;aA>HeL%zi;e&t+DT&dT1D# zcF5Pe-{D()wEHzooubdLt-Zc>ZS5Co&HcO5&ja3ulL~$OD2ATHohm5_gbg8G07?O# z0=p9*4?bJ*5w|rYOae%!l-Gr9Ww4|RHHDz`ux27YR3|-%p@%Q@z=a;N$YG+Jvh0b< zQ&P{w&X!r@GNyi}a`iHde3@;`}QF6h~hZx-~u&weQAwO`B=-M#*M(?l(35?r3n5a52L% zGk-}DM#BTSAR0{H1-2d=8JP`w_3I-ekAgl0dI)qfrslcmuiv1fX2U^C5r^tQ=YVbo z{}RyKLEVHyZU8h0dI)qI=rHIW(CgkD8F>cuyPzjP9|I*%n1H3Z3bYxt74%)u&7ib9 z*aP}q&;y|Ng1!R!5NH9M|2LqsLCdkTYXsd2ngl%ndK>XU9|S!K`aI}482A&Qhe4;o z_s_>ZxeD|$&{oi4&?M*tINEKXO`s2g-V6FX=*yrdK#Q=NO@rUKK&wFM-tT(Qlc3uO zhvV%5T?u*sbUWxPpnE|J;PEem&IUal4-M);t3iXHUeIlz*MRN;O@bZ({Wj<;p!a|l zAV@q9Ivey|(0b5DI9L$02Xq_gFF^Nzz6E*!bOLrBuYgViEx@=1LE#6+^Pqb{>HAJf zjvJc|M^C9^=9Gy=yBrfs38(M4=e;&Eaxn>T$}Vphv%x3%q9Y?CLnK>VdR1}R)g_ZR z7Hu`IoU!EM%GnnZOfvQOd>{UW?!-b-T)I84?(_+@s2Ew|2l4sJ82oMEZ--r&p6T*= zHwpz*eh)scg1^+x-;&l(u;a$2M$zJl`Sev@zHGN_$87Nbi1HNj3TDsqST=fl^Yj0o z!>WhABYYL}=2m+>d0(^mmxAAlc8Jib+POMyMOW*OTBsjq;5d{AGeq zcASei@DBJtu=CMpdEZIfL2~twOCYWUbh&HOa#UXga`!>5PLtaNG2-t4|2N=^HBhzZ zDyf6`d%=Hf4E{6V-wS@W@gX}e1^94?(Vpo;gD(~!WnW{u{&Nek{*IylGvIH=dXTGq z*Mt8>@Eh#)=ha*G(YkOO_}6Ce$M8LlVe5ajn zo3A^VUt{OPo+wn1{=MLT8|AaLhxpHce<%2r_VQF1dEy@f|EJ))?EG+=KLr7NANaZY z^HT7i2A}q4mcL$|F5d|L&%vK$=X=xq2>5q_KgZ5rm*(#P|8DT-+WFkaqW$3CH%9%> zfPV-0x#rU`*8eHH{x78KpMrJ$$0*-w=jUA`1gQQ?!5;$u5<9;=UA__gW8g2f^KI)? z1pH#`hcd=DkuJXj{JG$ZHCfF^S-lv)z2MIPKi7PF2K*xMm)YyjTWZ;V4E!Hr!+M3C zPr(;?YTp!G9030;JHJWt>w#Sg{xI4XBL33i(p&SE7MFcJ-&^e5S+KNt-i|_FaryQM zzT%qRi7Sdd@#31=;_}+!c}t6(kc0fv;v%s>NkWekb|TDXBy6Y8qPcc;;aBpFosJhA z-_JL0&!0s%PmU=Uf${0WT4OaRZQSuGsxG|TXy$x|rcW}T^uQ-Q@JSDR(gT0(9@sj` zBdUy?F6lbXD?4z@A(Bp=3@Du5xuY~i5@UCfM_j3Qz^Z1*{5i~5?^%nzKQQqS3UmhZ zhZn39SG3Mi!V)CXpFbLj(Z%jO4-xB~@B0g69$N;H4(53T6?+?84X}OUUIqCw!8HuA zcJeh5Y_Vm+n;MkVnpeZ+)%`b?W|7o$zjYHmBCqf=&MUipQd~S|q)S!*M|cSM>sq>whtQhv|gVJVJCj)45EmnO?Q2i`W+Q@(MgL63v*2Odc3Fm1_$1|KZuvqC~?>`TEz9}{=5-5>Dj93-!9}wkIN5$XKU9_g?y>8j{QW{ z`zyx%8vX~y+cf;Rz-Jotk{ujFom7(ls)p0M9E9)C@U4vR z((vywew&8Vdw`^8w}#VuqJ-bB;nT6u5q_tJU%~hu4R2@sZVmrB<9jvy0mkpw@Rt~W zP{Rx17-Y}G8eY!$qZ)oK;{zK0CB_eE_>UNWQp2BP{22}ZfboMGegSTy$$62@QC@DSriHT+h_k7@YN8Gl{F|G@Yg8h$zq zCVT#*;fokQuHk;h-_-Da#^2KLpE3Tnh7U1*Lc=GYChhsNhF3HGj)wage^oakkKPv%H=CY2Ay2z)$w(?;zlUt(O}f4(mCjNVVabEaW9 zahI#_58r`&w%iL~>F zlcfAjEWb*~kG`*&0eR}5{xhZgQ!KxWan~6VSM7a3=w~4td4c7B%>6%yc{gC9k^c8f zr5;Rwk!}T^&HnpXeht?vzJo-GV~l@;^`knGW=@s*b@^)1VUf3aenKveuW$a)%Gl^sRGO{c)c~nK zuQ<~qq(8%D?qs}(?Wtt^Ux80WT=i)Cjh9${3D2+jEPn?4ob=z#^YIeK8yW9nKU~K6 z|6%+cZCqXg?qnG|IRU&hOWbfwll4xR>Jj3~Pv$V*!uGVXvM$DtvHdqN{s`j_l}bHz zjF+7y^|!J8m<}RUG5)pb9+7v7zlITIT=$>9W&B>2SM%{D#`U;SgiucX`4Ib6J?p=K z@inZcg7K}ur{>Kt=;w&`w1egEEAa^U2h2Q7^4NE&-{-2|mu~}~@FC3)-(x*3+&=-< zbIsYZUixL1JzWo+?APPlX2xASUi5AQrSCKTKDXB?P`ppXcq`*=jK2t+;_3j8ONjB5 zlAq=gh#IfCWzwFnoh5Ol=i7|yasC;`51uXM)qG!srLh$KqxW+iaBA-%ZkO_(zX6UZ zGb-(5`7rBO^XM0hm$Tn~ic7x6xRc|XYS(!)WW8TG-6JHi?H8$@@s->^aBq>i7}w{^ zZxMf}T}74aSW=SPSbhfkkB_+zFus@j`C7&gGp_sX2aFe%d4!}|7v|5*-app>r~cIA ze?rI?8*?U0J!;+G#`4|VKWaUCpYfZu{<#2;oU)C}V&GJ-9+&*UDgNl=-of&^KksDy z`Z*2vvAn)sJi>Sz_j4on=L@Wdvlcm$19xEIBm4DrYAWOUJh}`x%_I7KG$nq`);KKY z*XZY^RjlVmUPrJD$rOku6UpxOb{EcHFt4s_HX9pST5OQQu0U6pI3}Xey|^nJ3WPR>6CpDYi{dbe?f{(|(UNR* zSBm2*{ICyN)=RKDygnL>lOjA}u4R${lQq5EKb^S;Kf3m(GlvAR{EpKMB~D60LOBW z)~xL6Xe`m)mdMGkf&Or3_{Q8C76oFF2+qF9slr|Ety@vs5{QSpk~xJIii0|GvTH&; z$xt*H!h6>_8dB-sctcKR)%tj-D<^khXiT=d!lbd;6peL;{gIqn+?AdFWS~Qh=_%!+ zv834+JGDNN3yo8*Ew*u7^@hffTP&O5j|x}J>NM^uDMO}3yCY+?p;`)J(j;-xQLH<+ zqq$kMD<0Zl`ZwTMmE0|G5(KSgk7LAM{ zTN#SS5fV;0H{2|j+|)J3462Y)p+vwxmKayshQn#%q4wPU$Cb9lA$UruE`K}}J*5=s z8lwSKvH>{W=M;i$THGI9KZZJ%N_34`=|Zbg%>Ix+ckppn^C*b51&8>IF|ev?Isu4# z1ra_NO2T8YP?#-PQ8wVbqad9Clnj|+8M55vGV*t|1ryaQy?DLpHxr1hYF1Px<8DNo zWsTP?t!*^Tm8P3l60S({yCP_HM=XLxGm$A>VYz42LYgw~k#WNd6xLsO4;L#x^1hHCpw zg1a&r+9(giqdSa-9&ZibZiKv@P0RU^JS+mMLjk%2p%eHTdRqJt^tvleI?d0LZ|b2_ z^Z2N{(Y9deGQ&9aPu$4_uyU=B#WywBZdmA$KHSxG;%-dI!R(e~^#)P5s@CiEian!} zQ3vwjjWRoB)UtoDX0HYU*=JXS&sCh5v^_yMieFRFm|D7#<~*jDswf)DiTU0#DICJG1#9h zCVR?FX;P*SDkp4)2SJ1vw9K;|=?q4_5g0pcZ-O{A(jN_kK9=FRon~P$+>Sfp5Hy=& zmkfuY|C1Hf*d+#Iou)q!P>mGcoAlFtxZQO}O(S`dq<&H(w+qKH(jknQD#q#k(m~}s z7B0;*oSt1YG`6|DUd%HQqU5X>)4o!l_T#Orf@T9(Mw4D1yb0%~Or7A$$tCjgRL=BK zm7|&qgR9ezGx#J;jwW~>VTF=rIGGA3+7X>(f#x1#ohphc^Dz$Z)GDwKbu^ScD77^& zU)h3v$LJV_pbl5}w$#d=$`wT1h^AHtAd)s*gEc4^j+))LxrDF4AECTEYOP2iT8iZ3 z9V|>*M4$=gmJ=-fNGO|i*&=LLqZen6qDGo^GT^8R>`sqWG8Co5Tg`BL!x(jWomO-nfN_Wd_(}*3A208ojux8Mo#BC0pF{@3f zQR>pMd91#4%X#F+ZI|rsbU#xsi#S(FO%Q#w$RFJBv7=JNyP;Y5N2cYS;p|Q}riZyl z1v0VrwJeo(V)ZkznW5-Ui#Rp}+4cij{5PwIbnzl5f&#C2%hR5geT4`_8kS=L$vR82 z)qS z<}tQ3^4MhBmRVzA-|}Fg=;U1$DbY4`;U2HtIO+^rvGit4J?OR#<9Neb71<>G7Q2$a z?q*`F-b?qH*no;fm17Gg)c;C!In`dqY{MSTilC!L2;U^oPG7Dy>Gg+(jY`>0s!p%? zRl-#(5D0QCSt68*5F{h1ePtOHxZU>MfweP8_nh6^aHFxpTpvoBtzBwCjm2fS8Wo^m z9%j644=c9rcHbIhN=>J~M?6&1RgS)w${C9mw&AqyD2LD-lLlVB!VKV4aXjNo;NHuR z=at##NxGVxyQ}nF9c`^h4dyChy?!XV9#zI16wFWRE_ZonEZ7j;fTx8a+nq)vw()=Q zP9q~iXT8&~naZmVh*xtzHG4CTjt7rVd$&}I+gRRkYFg74%ERNYTWR0AF=Ql7>qx4K7@|*2j>=Y5Dj|-_$}VCdSPb>frBYJAzQ6 za?p-b`9nQ{5Wed~JFwabW%6rVsY6|VF@S=o*xwlrpj<3T6#^l*a3PEuE_{L9i7$oK zSJM9ziq{4V2R`ckzM4D_a_N7U1z*2sB$Bl!dT#@-JX_^k^E}AOvpR@6>5na`_f{3; z#)Z9nGS4GeNj7M<$ff`2+d`FBzaQJp<+pNq%95SReuj-3aY3f4^6GbHWi%*AK1rcugZTN81)I8YyEC*H&=w$X)+RbtA+L9%3fam zzHNZZ4_T7(qLlNB-iExry!sv7ou^4b)m|=U*{||L-wojQ|~c)xcoUZ=(gmvUDM?Q_}I&<_oUUoKQu)t=5l)f zKdzNmzvt_iB?~;Nb)c3tp3=&z-~G*=C(B-UB(Dt+qm!;n#PQ^>p45wZTgDfN36H9u7S zs$IJwYp-AZesTCRp(dyON)P?hU-t6W?;Oiz`K^*ze^og}Cu!x?`|ex0ys}d%P~}vf z-p3?N_1~TRe&sGMFaD(tB@F7cUDM@RTtACjTvfi(LgWR+MN*XB>r! t$V@FO`c9i7Lh?yv|8!Z9ro(o8RQpx@qxqe!{_ +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + + +// #include +int main() +{ + ll n,i; + cin>>n; + vector v(n); + FOI(i,0,n-1) + cin>>v[i]; + + ll x; + cin>>x; + if(binary_search(v.begin(),v.end(),x)) + { + cout<<"found\n"; + } + // lower_bound() + + vector::iterator it=upper_bound(v.begin(),v.end(),x); + int p=(it-v.begin()); + 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 +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + +//#include + +int main() +{ + map m; + m["abc"]=1; + m["sxn"]=45; + m["ksk"]=3; + + for(map::iterator it=m.begin();it!=m.end();it++) + { + cout<f<<" "<s<<"\n"; + } + string s; + cin>>s; + map::iterator it=m.find(s); + if(it!=m.end()) + cout<s; + else + { + cout<<"Not found\n"; + } + return 0; + +} + +// #include +/* + +SET +int main() +{ + ll n,i,x; + cin>>n; + set s; + FOI(i,0,n-1) + { + cin>>x; + s.insert(x); + } + + for(set::iterator it= s.begin();it!=s.end();it++) + { + cout<<(*it)<<"\n"; + } + + cin>>x; + if(s.find(x)!=s.end()) + { + cout<<"found\n"; + } + return 0; + +} + +*/ \ No newline at end of file diff --git a/Lecture_1/stl b/Lecture_1/stl new file mode 100755 index 0000000000000000000000000000000000000000..e93467aa0fa5b2c76a6f663020132582ca0de43a GIT binary patch literal 53280 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 +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + +bool mycompare(pair p1,pair p2) +{ + if(p1.f.length()p2.s) + return true; + } + return false; + + +} + +int main() +{ + + ll n,i; + /*char a[100]; + cin.getline(a,100); + cout<>n; + + vector >v(n); + FOI(i,0,n-1) + { + cin.get(); + cin>>v[i].f; + cin>>v[i].s; + //trace(v[i].f,v[i].s); + } + + sort(v.begin(),v.end(),mycompare); + FOI(i,0,n-1) + { + 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

C&XP5sB9cm)m^L^j*3GLs3 zEzMoF=lmA`|BdtN{dsA(j{VEhcd^O x73vXC2UiU%D%>VYKfHFV_9s;Pr_} +#include +using namespace std; + + +int main(){ + + char s[1000]; + cin.getline(s,1000); + + char *ptr = strtok(s," "); + + while(ptr!=NULL){ + cout<kTeMvE%-1=29i3tn3-^~plHxT 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 literal 0 HcmV?d00001 diff --git a/Lecture_2/divisible.cpp b/Lecture_2/divisible.cpp new file mode 100644 index 0000000..1f60e0b --- /dev/null +++ b/Lecture_2/divisible.cpp @@ -0,0 +1,108 @@ +#include +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + +int main() +{ + ll n,i; + cin>>n; + vector v(n+1),s(n+1); + map > m; + m[0].pb(0); + FOI(i,1,n) + { + cin>>v[i]; + s[i]=s[i-1]+v[i]; + s[i]=s[i]%n; + m[s[i]].pb(i); + } + ll j; + FOI(i,0,n-1) + { + if(m.find(i)!=m.end()) + { + if(m[i].size()>=2) + FOI(j,0,m[i].size()-2) + { + ll x=m[i][j]+1; + ll y=m[i][j+1]; + cout<%F@D9kd3fpVm_Rw)oNvLyxQIF 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 yZ +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + +int main() +{ + ll n,i,N; + cin>>n; + cin>>N; + vector v(n); + FOI(i,0,n-1) + cin>>v[i]; + ll ans=0; + + FOI(i,1,(1<0) + { + temp=temp*v[l]; + g++; + } + l++; + j=j<<1; + } + cout<