Pagini recente » Cod sursa (job #2059888) | Cod sursa (job #3199881) | Cod sursa (job #1823477) | Cod sursa (job #2545645) | Cod sursa (job #2274380)
#include <iostream>
#include <fstream>
#include <vector>
#define nmx 100005
using namespace std;
ifstream fin("biconex.in");
ofstream fout("biconex.out");
int n,m,i,j,nv,nz;
int hx[nmx],v[nmx];
bool z[nmx];
vector<int> ad[nmx],rz[nmx];
void cbic(int nd,int h)
{
v[++nv]=nd;
hx[nd]=h;
z[nd]=1;
int id=v[nv-1];
for(int i: ad[nd])
{
if(z[i]==0)
{
cbic(i,h+1);
if(hx[i]>=h)
{
nz++;
while(v[nv]!=nd)
{ rz[nz].push_back(v[nv]); nv--; }
rz[nz].push_back(v[nv]);
}
}
if(i!=id)
hx[nd]=min(hx[nd], hx[i]);
}
}
int main() {
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>j>>nv;
ad[j].push_back(nv);
ad[nv].push_back(j);
}
cbic(1,1);
fout<<nz<<"\n";
for(i=1;i<=nz;i++)
{
for(int j:rz[i])
fout<<j<<" ";
fout<<"\n";
}
}