Pagini recente » Cod sursa (job #3226404) | Cod sursa (job #2345409) | Cod sursa (job #447909) | Cod sursa (job #559661) | Cod sursa (job #2478669)
#include <fstream>
#include<queue>
using namespace std;
ifstream fin ("biconex.in");
ofstream fout("biconex.out");
int i,a,b,n,m,ok,p;
int low[100],niv[100];
vector<int> v[100],sol[100],q;
void dfs(int nod,int tata)
{
q.push_back(nod);
low[nod]=niv[nod];
for(auto it:v[nod])
{
if(tata==it) continue;
if(niv[it])
{
low[nod]=min(low[nod],niv[it]);
}
else
{
niv[it]=niv[nod]+1;
dfs(it,nod);
low[nod]=min(low[it],low[nod]);
}
if(niv[nod]<=low[it]&&q.back()!=nod)
{
ok++;
while(q.back()!=nod)
{
sol[ok].push_back(q.back());
q.pop_back();
}
sol[ok].push_back(nod);
}
}
}
int main ()
{
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
niv[1]=1;
dfs(1,0);
fout<<ok<<"\n";
for(i=1;i<=ok;i++)
{
for(auto it:sol[i])
fout<<it<<" ";
fout<<"\n";
}
return 0;
}