From a635aa97458191f1a1e41a01ec3adfbdbdc9c0e6 Mon Sep 17 00:00:00 2001
From: Bruno Freitas Tissei <bft15@inf.ufpr.br>
Date: Mon, 11 Mar 2019 16:38:16 -0300
Subject: [PATCH] Add Cadernaveis/MANUT.cpp

Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br>
---
 contests/Cadernaveis/MANUT.cpp |  97 +++++++++++++++++++++++++++++++++
 contests/ICPC_SA17/a.out       | Bin 17200 -> 0 bytes
 2 files changed, 97 insertions(+)
 create mode 100644 contests/Cadernaveis/MANUT.cpp
 delete mode 100755 contests/ICPC_SA17/a.out

diff --git a/contests/Cadernaveis/MANUT.cpp b/contests/Cadernaveis/MANUT.cpp
new file mode 100644
index 0000000..286be05
--- /dev/null
+++ b/contests/Cadernaveis/MANUT.cpp
@@ -0,0 +1,97 @@
+#include <bits/stdc++.h>
+
+#define MAX 500
+#define EPS 1e-6
+#define MOD 1000000007
+#define inf 0x3f3f3f3f
+#define llinf 0x3f3f3f3f3f3f3f3f
+
+#define fi first
+#define se second
+#define pb push_back
+#define ende '\n'
+
+#define all(x) (x).begin(), (x).end()
+#define rall(x) (x).rbegin(), (x).rend()
+#define mset(x, y) memset(&x, (y), sizeof(x))
+
+using namespace std; 
+
+typedef long long ll;
+typedef pair<int,int> ii;
+
+vector<int> graph[MAX];
+int visited[MAX], parent[MAX];
+
+int L[MAX];
+int low[MAX];
+vector<int> articulations;
+
+void dfs(int x) {
+  int child = 0;
+  visited[x] = 1;
+
+  for (auto i : graph[x]) {
+    if (!visited[i]) {
+      child++;
+      parent[i] = x;
+
+      low[i] = L[i] = L[x] + 1;
+      dfs(i);
+
+      low[x] = min(low[x], low[i]);
+
+      if ((parent[x] == -1 && child > 1) || 
+          (parent[x] != -1 && low[i] >= L[x]))
+        articulations.pb(x);
+
+
+    } else if (parent[x] != i)
+      low[x] = min(low[x], L[i]);
+  }
+}
+
+void tarjan(int n) {
+  mset(visited, 0);
+  mset(parent, -1);
+  mset(L, 0);
+  articulations.clear();
+  dfs(n);
+
+  sort(all(articulations));
+  articulations.erase(unique(all(articulations)), articulations.end());
+}
+
+int main() {
+  ios::sync_with_stdio(0);
+  cin.tie(0);
+
+  int n, m;
+  int cas = 1;
+  while (cin >> n >> m && (n || m)) {
+    for (int i = 0; i < n; ++i)
+      graph[i].clear();
+
+    for (int i = 0; i < m; ++i) {
+      int x, y; cin >> x >> y;
+      x--, y--;
+      graph[x].pb(y);
+      graph[y].pb(x);
+    }
+
+    tarjan(0);
+    cout << "Teste " << cas << ende;
+    if (!articulations.size())
+      cout << "nenhum" << ende;
+    else {
+      for (auto i : articulations)
+        cout << i + 1 << " ";
+      cout << ende;
+    }
+
+    cas++;
+    cout << ende;
+  }
+
+  return 0;
+}
diff --git a/contests/ICPC_SA17/a.out b/contests/ICPC_SA17/a.out
deleted file mode 100755
index bfe686fe7a6b3981e10c013b2d82a356a7be7cf7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 17200
zcmeHPe{@t;e!r6h2nxyYLq*YLMDPGEV<x`{x@ZzIFwp=p2}(tLPG(+`k;zPU<_#pY
zw9%k-7FjvFc4e(?soP_<?Kz9KwYb~GAQs&{){}LurIq#Mbk$9iJ<`QRw8-@Hz3+Y}
zZ(iml$l3j4&++2q`@Wz1{eJKF{=V<t`}`As)0zU8OK>O@Hwof~OH8CzMI5+MJ%H4T
z8ZjMzzap*@Q^6NW%#5!!31ZD~Mww<>tnflm(yJ*j0Xw}?$uVUQiB3^*`AFksCdyO@
zj|51Md_AKKp1IP*nR>_}gu%c~=7Z8B_ejrul?l7A^2moQRsOpb<@{0J=+~xjJ8h6w
zgkVat6q?^N!t~s5iDbvoHWL<1S?@OJk)P)q+)A)TrRP*G#j0GGQaMt%J{oDSuDm`P
zULK9aQoYN2YpR!5S9+6iZ@J7j*(cex>o=0PATz2cWc*x(QT(-;M_*X~kB6qe^T?s^
zukp7Pe!hLm9Fm=nAJ-ddpuh!9!YIt$H)D13JJZ;t30nSs8!@vjJU{*i99hVWh3-T`
z`Q%@Rd_FwkAb+Vtx~Gs<K06B?>>qZ(sWkK1dBFic;9zIi!T*1D@ZaYkzrn%&s}Az-
zIQY2$xCcLbc+A264;}2k>mX0<(PK9bo`$u2c(X$}9EE(o@}GxvXNk*&$75P^!#@h&
zfE~hXul5it<|$mD|0IoY=(_8u&r}Od>+Fulw4@PC7@8)u#<q1@SWoDkk))v~+SaX(
z#$$S0usy1qartBJY&D|E#!#!_^M$&C3C&0ZBL)C}YY>0@Er_US4<;iaEuJ(Ida%2(
zO=~OD{H-grmRr}i8Y?s{)Z6Rx`N~Zx2t{I@jjfehYn9gK)BJv+-ML;GYw-EENyey&
z#FHB2^~%Or#4vHKv$t34(G$sdEEtU#ecHA%628?j2}hqRlaU=dC*|Ouqw;E>zxmcs
z%dM>yC{j2cNhJL(5!3ApumwYvrXea$7|&Y*3YS$ez9#ZjLZ}T@P^E<~%(1bW_@Y^g
z^!mGzW~)&Vip0#svz6(qO7_J<+V+Uig;p7k#Qp73G;x0I3(eNnzRtIKwHlS7c*-!{
zS!uRIw6J`w+FxNrbboVe+!X$z*_RcCe%KibX-VpaKA~-lZI8slT8o}cb?ekgL)<^n
zHA7pqP}f$iBN&OI!-jf;TF}sYBZlbKyOTOxmRLuG+WZc5RE_jipY9H#h}W)OtyOr-
z#M-9D`qf&ww=(-w?yVB5H*Kn`Z`6F=3KQP63Br}$a-WsO7*c@Qv<SZf{4G*k0aisO
zPYA69rpXu@a|oe-6kPb1##qJUVe_?p7nAI1U}k)QcuK{W0hk+!%%m09IfbRJh)k#1
zyjU$fTzIA-jqFkQ+4r|%c{WwdMLc0&Kl2z8E)okAZ!G;5mPiG{tMqyO#p|ZwQfWpA
zwa#Mvqd6vCY{T~}`C^Yp3a~u$uP!igDiN~;q?j18;MR51F$=DelnTQZ{8H0|{5xX7
z)zVYqCoT9qi~Jc2euV{hEB~o1t@8`dC$#3}wGXM)UhN?w*TQN^EBP8_e;PQl#i7=M
ztE!e!0Sm6GMB>dB+`8W0WWgy74)<7at^<nevfyYq+0bLbFUq1q^jdH<%xvhl;4`wQ
z5D!^!G}LU^Yr)m4jEvi7!MUkX#C{9TZJF?=E%+<~R5)P4X)Vj)paoY;co{Wl!7pcF
z(7?cn;=t}HTV{Ji;DJG-ATtygc)9pURw7e%|16KlEZ&8`r3-5DM0^*;j}B)L7VjXQ
zs(N%t@(JRpsgDjy{$Ap#%0~}KzMXig>e2m@zms^X;?cd5Zy}z##Av_dZy}zldbCIK
z^~6&ZkKQBs8;GZ>9c`9;Iq_7bqqUM>Mm$yJXqn^}5>Hh)>XG~v#8cIcx+OoGc&f5d
zA^D4lr>Yt~c@Dth0^;4o4@>?tH+ZU=(ILtI8hppz%wm)Je$|-%>D__!{{#l!J=xsW
zv}ejUkk`PTnR6srwHPInx#TVAd|bMqfnrv<kif>ko++OK46Hm8NWW)Xjw<>)Vo^mi
zw`7Jpyrm0vAxR;&9HCkn<Dq|;1ou?^0Ayoe={e{J4xcLwq)!G8kK7z^9S!{SoG}ju
zzpf0<AcIc!`d2-RrXf<-2L@JM1_hXeKQjWmSKR_`WF|^vB!E9hr=%h0B6s@XmN<0;
zCXpW!-!j?(33_Tpb6b+$c|4suw%dO^5IP2TcR+9Cz0Wh5z{(?~j}Gn{H0JG|=?A#m
zf9$)Te3~A5U=Z-=Z_vbm1orLT2*o!7kvD#gq6@f&0(<5@Kq;ccHjq|P!N8e};hRkM
z8dDa=|7>t{pEQ0vurH843YUI~8W>rK+AMuueC=lGROzlKk;cHz;{t5y^Mh&siGiIb
zrk6f4l~gw#OAj3$E^rOG2GcL?_MdPK?Vfo*jKF{7b70Vwek=XT$Y-#K?6pE*&!#de
z0F~Z$O7A%oLHfTRa!=;?y%2t-2rr{T9Hc*^Z<Aw4b95_8ImeYFmNe#28tah;@>F_g
zaA2g&b!_*{pQ93Uo!n?TSw5K?zksIIjSugbOygNo1Kv(rkq<%?6)7tR<I$4MTaHlk
zscWMKR2vTLE?T?<W&&ydh;Q&kvN#g@zf9&3J)!<SDM4PJ1b}WZAEp4kNzg|oG*Su(
z^>Gi_AGlZFBo3kAAiJs*vLiRJA=9oOMK*BK^+Pg^%3BuL<A0HqPeF`c0%3gPivS0a
zRvg0~#XW|&59cWGah2K|pHUi+lTB>VOeD2{lA@uCl<L8l@vn>=!t<`T(alt1Q^6l3
z4+6W_jf4XgGi3IS>JP7POux)ZX$XB-2*9fO8d7aa4^sj@#E%e<60O}_cb8eFC{TBL
z=h<}X%)rjGuGHrHcAm*((BWICJX-D+BOge=FWEf9gREAaz3px|F=Z8Tu(?h~u6mwI
z_gPc0+!XvCAPAng*c4oZ$h|+7wTRLd;zcUDkv~MaZ#gnHdUforyQA**#`J&IZLGss
zx%jPOITS8`2eh>={dr^hbkoxJ<eYW*^TLsvKSgF9_?6-Dz0KoSQ~I-}^y!B5M|GLG
z#{&aLT!EE8Pklgh+U6~FchzmFySq+1vUe=SQ<&<cJvHmOEUPqLuaT?tOp_K(JZ}6v
z_|@XqkDpxVuz-!tD?fn_O_Y=lO^D_y+DwxsIBF?0k<sKuEtbMEJiF!>-q;LEGIyc&
zo&bFqMe{P~6QEJhr%?XKLEk%@$#{^VmFVUH(7y+z+50unhe5vvn{R^hn!>fCMYww1
zuK6>j74LOTa}!SMy(O@F9VmzV@<J?v0LdTxB$FwFT~Xp*Q!?+C(u=nj_lujaxN%v<
zqJ?CG^c(OSg#T2&96Wfq3%{3;-py3TbtUcx3s%pZ>K`a9tSW$4rhUW+*N)~U>Fu;X
ze_^^u%r|{DeIP%6gbvUKABw0mvz@gM7Y-B^23)X2e!hy|D9R`Snw2T&mg#r^jo^19
zh6K5`VjIme8Zl-bW+06k$mj&rm$)A(s4toK%|d^PXHQXm$&!bs1WL*toEj*p8JM=N
zq&87fQ&&<}SF)tO!~;3V*OwH_Hb%bQ13Q#$4w;PWk_B5(Z>}qzE)YL+&Bp7^;R0$c
zUxqJB;L8&DvIM>?f!~J`;C&|ESK@snnj$IKDeakAaoQuJKx+XC{qzQlporL|CS-os
z=Y6jErdW2rjQ4<eUyJ5I3Yb=9_|3UYoF4Y6Nr-2fUiH9xSA!~^)+iKiC^9MUq3|A*
zbx(pMR5pZ1?N9JrcR&>YuPb=3hxfRKlwrpERl@9dv(l$E5d}{FD<+%GAC?3%e-M|d
zSO!V{q*BCkNb>CGNyR^>;;}4|@hZE@`frc$Ij`N~^QxkcD*Be9?<;y*(Wz?l=~6|n
zRkT{sHHzM@XosTP6n#+9?<o3|qR%UOR8hNsUzF$lQr5#x^$ngS8{1PcBjs7)#isT0
z@)aq``u^Bg<1MRPYQn5A0i_*cKHs;B(GE7Bi|68n!r+EziJ)C??gthaZFq{{_MeMS
z72Hp9@o9qFPcB|8xZUOA(*?KhT>K)z{U8^=I6EHX;xoj4)h=@JnPMnUJr;_R>^+QJ
z`O@t8l8d{=Uhc4#h(eq|@_hmejB=YT_Spvn2o#DrqKrGbMWGOH2|SKjV8~x0c>K!6
zFU7qHj}?;7h2pa8cw>z$q*20?Pk!uNHCLWT&oPvSog(qSc*D&NG)@<wJl&<aI2AkL
z%{KgMh4Z|?S}XA2!g=ndg&qk}dKA{+=gLzK-N4B{&o?AXp$|V-p7PuWJfHu6DdpW_
zpQ>L@m(KlNm`%QG!(UhU<2IZ&tH}QY`rUY<XES^tpWWgKCC}sOEC`VO{Wd$-DEzN&
zc(uZxwBhuwOLqRoX1`P6PuuW6Rro*H@Mjc$z=r=s;s0dAKT`NX8(xC(h5Y$f8(yaH
zK^wkK;V;|ptqOnDhSRw}*?-N3KdbN|8~$Gkf76D$F!7O{V>W!L!jIeV+Y~-*!}}Ee
zt_^=e;UhNu-xPkrhM!dUNgF;N4Tk*u*oHSK{EQ8cDEzDq|CYkhm1F=b!y$zi+3@!j
zUTni>V0}dX%&_4V3U}M^%?h7u!|zl0JRAPE3cu2Z|GUCHHvF{07uoPDv4A5#m)P)n
zg@4tCM-^UX!yi+4r49d)!fO=H>$6_~r*UcL9J74oehVJwU_nPXuZxu$e9S*CErPrY
z^T=28%oq8_v2wX!96ulVrJeEf#d;|}cijA<Dcn9EC8VA4^UFiPXCq%9sBvEIWg$=B
z2JXhZGtc7zHx};2`qq<YK6)JTv!KEAEVs{Rr2R2{emVwxAu|^Gv4ea)Dv11Cst$o^
z4~oKCiJQ;Xzng*2Dwrqi>o+=~vz{ZfPQL@bQ0D7$anC}J6y<#V1oBtIKA%s6mEnB{
zJAZ_UcD5M5KB>fdJ)b`@2mB!iJcfFq@)=g^rR$VGXC34(#d}G<bU&AN#;?=LAy4IL
zZx1&)*tyRE|CsDxp5^m<z7KXW(j~lKm9t0rf0^`0F&086r_?^}>!LeRUvAhrsOE82
zNjcbgQKh?IrAx;y6kd|{FCUlR*B$Jfk~r2;YTVXU!iBQl6=NZbfO{-FKh`?PZ*ssB
z5-$<`DqT#MGTaY5-~GCM4tD+pxJT()$x#P<*ul;+tmE^wD-lW<Nh8(K;SGtg`+J(v
zt%c|YUlNys!f~xL8gCCqwXhLSB(-3wSA^o-JyG4z!`>CuE9o|19w7}Eiy~SukqGu_
zddx`liH=0DTi3#=?(ROQSU3%mMvkc88|vwi7r2^yD|;e(NZ%ew>RKos!$qxBh^||;
z8cn{6U^E&J1>qO8J58`U(iw{<aGi-HYBVhpC+lF>uf(mzSc<L;HkJF}v)&O*MGXxW
zwrV}`Xe87}_XWvr8RGPWj8TXW8PJTl6)Fpc<2|N2S;yVEDqM5adrdEcF(cVj6$#;@
zp?M22Pjq!Go=mkT9ph_YKhjMX3Y`*I5sF8nxYgw-;4Aa5URT!|N<?}LN1-ZtZOt*d
zM(;KBSXd7`N>l{5Z*`2U>`drAj<Hqxgweiojq0W^7VnM(qmEX572QE2)Wvl=saz~>
zXzlUI?U9^*o^tK+?dO%QK7rgyGaJE}Y>Ii?l&{j1A=hH5=mdGFHU-gX3|xATr<@y_
zPl@&<^le&j8!ikw=cKYDo`B)Wi@Hn+CMRe(KDHK%qucaMkn0u7S_dx08d^LSoj|ri
zPb4rTOxibmO3vu(nV<)in^Jl*6r4y*CEAW_mkGVYx%^b3?Fk4@D%BHA=&?zq$kqfI
zs5CRs9t=++s9Z|~W1SP2Q&P#E2@|c#CW_v#2b~8WU$v?QIj7)y>I4<bNz>g{RVo<a
z!@7YMi-|&O#Z0mdw^_q<i`CGzh#ayiG1wE2d*n0~U>u3;0EheQLEN1U>*ka~d|3py
zt=BefsIO~+N~&FJ)Ns*QThmgv&ae5`H_%mg4c~xh{(u4l4J|@z_=ELz>l#-hE@vVO
z=K}JweAfJiHEUY^xXxZz-{hxD+EvMTbem4;>*1gg#I^Yi@*;CgOQ8dq<Nrjrooj35
zEnV{xE)u5ezI?S;#o-1o-P@IO)dgHWme<L1lA*i4@}jVLq1cv;7EZ>sE)+3+1dzSW
zo@3y`e4!iUIcCU@hC96Ic3w>JzvZj^<5H64cb+%BbCgxBn3u3sOtwyb=bu94xI!gH
z`JfL2#uX?0%)LE6=4&P5@O20G1uT~E0mm2nY9PlCIMHhSZtv*lq-W+^-PzBHfhWFX
zeU<#4<ieUI?&tH@8#$I`ni_R#D%ONtihl7AOX&9hIJ04_k+t?@(rP$6NXYM7#;HL;
zUh@wnQ*yKdKfcG*)><z2Pxx_9&IbtaPkk}KZEM2h=><VH0Q#OICvWVeEH90Q7!}Rk
zCC}$a4xbn~f5+kY84i7ClH(5dmOS4M<;V%)P4;yg!FEt1VbU&sip20`RFCjt-KKl-
z;ly$y*r_<Ym3Z4z5qzB(2@5ZAUBP6R@P_+huxC;uVa9C3S4x<wau^M92|XGl1@+Vu
zHH25b_;~T??TmxP#~=7BOWm7@%UQ;&cc~Y#t}u)+2kZFAMDGphc)>wFFoH{C<~y2c
zgP)ORusafhmo#m8(Heyp?}y!Z=d-@CUf468Khu^Hzd!T298*4jX6tJEiCJ+Cp0M?h
z)#vj&rk<>%`M~=~4Eyk4)i;zQOc$}BqIUfT;HPos%l`9uAk!sE58JIW@P3tI#d<to
z3nT0QpfbetpyIJTD$9xW`TY8J;Dr`_K3`<Y=k5@Z!CroJ>OyDQ>_4AFGQC0RvHvW`
zbSvWNjGTEsuVlJc>68EDC;P8pu>%iOrmWBBnoRlJp3`T2&i^i@U#|@E`6pApH$eKd
zC2ZIKCNL@!@{a=Fn_z0+Mz+^~8ah^eK2K#@W-D;M%gFRmn?9erGG#gPjRO16^e=!}
z)8~CircZLgNp174s(O^<dp3Q(C&Colm^s0o|7Vmw*B|dgGkq>cd(3}^pS9`pxiHf<
z7F5)pK3&SD{B!zzew?MY^5=46vp=@!^Eoq9zAwY_Hgkf`FKO$S+BOB=|L5=5C#%0-
zLWhn3Sf9_Wi?1SU<I9WvXL<@U+_y-c&$qMxe*jf5+`d_l{i5?-$`hy0_ij83$eIwt
z^6%Im)@OPaQC9uzzOcvC;eN^%SdV%7Zh^3D`W}yrnr9NR&u{JvOAvn)%&eFOef%fN
zvWWS>`paxM$x^UVZaZd-`8VJ(X|cK=LG#dE__6<-FX|ucyQyLRZC-BD4N9NmI9=vv
S;US;?U#WqY_vu;QuK)j8ieRk(

-- 
GitLab