Cod sursa(job #3336082)

Utilizator pachy2007Pachitanu Matei pachy2007 Data 24 ianuarie 2026 10:04:26
Problema Componente tare conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

int n,m,x,y,nr;
vector<int> g[105],gt[105],S,rasp[105];
bool viz[105];

void dfs(int k)
{
    viz[k]=true;
    for(auto x : g[k])
        if(!viz[x])dfs(x);

    S.push_back(k);
}

void dfsGt(int k)
{
    viz[k]=false;
    for(auto x : gt[k])
        if(viz[x])dfsGt(x);

    rasp[nr].push_back(k);
}

int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y;
        g[x].push_back(y);
        gt[y].push_back(x);
    }
    for(int i=1;i<=n;i++)
        if(!viz[i])
            dfs(i);

    for(int i=n-1;i>=0;i--)
    {
        if(viz[ S[i] ] )
        {
            nr++;
            dfsGt( S[i] );
        }
    }
    cout<<nr<<'\n';

    for(int i=1;i<=nr;i++)
    {
        for(int j=0;j<rasp[i].size();j++)
            cout<<rasp[i][j]<<' ';
        cout<<'\n';
    }
    return 0;
}