Cod sursa(job #3235869)

Utilizator mihai2003LLL LLL mihai2003 Data 23 iunie 2024 12:09:06
Problema Componente tare conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;
#define pi push_back
#define vx vector
ifstream in("ctc.in");
ofstream o("ctc.out");
const int N=100005;
vx<int>v[N],g[N],sol;
vx<vx<int>>gg;
int n,m,a,b,i,vi[N];
void d(int nod,auto&ad,int ok){
    vi[nod]=1;
    if(!ok)gg.back().pi(nod);
    for(int x:ad[nod])
        if(!vi[x])d(x,ad,ok);
    if(ok)sol.pi(nod);
}
int main(){
    in>>n>>m;
    while(m--)
        in>>a>>b,v[a].pi(b),g[b].pi(a);
    for(i=1;i<=n;i++)
        if(!vi[i])d(i,v,1);
    memset(vi,0,sizeof(vi));
    for(i=sol.size()-1;i>=0;i--)
        if(!vi[sol[i]])
            gg.pi(vx<int>()),d(sol[i],g,0);
    o<<gg.size()<<'\n';
    for(auto x:gg){
        for(int y:x)
            o<<y<<" ";
        o<<'\n';
    }
}