Cod sursa(job #2529202)

Utilizator DavidTurtureanCDavid Turturean DavidTurtureanC Data 23 ianuarie 2020 08:43:24
Problema Componente tare conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>
using namespace std;
ifstream r("ctc.in"); ofstream p("ctc.out");
int d[100001],n,o,nr,m; bool v[100001]; vector <int> a[100001],a2[100001],c[100001];

void f(int x){
 if(!v[x]){
 v[x]=1;
 for(int t : a[x]) f(t);
 d[++nr]=x; }
 }

void g(int x){
 if(v[x]){
 v[x]=0;
 for(int t : a2[x])g(t);
 c[o].push_back(x); }
 }

int main()
{
    r>>n>>m; int x,y,i; while(r>>x>>y)a[x].push_back(y),a2[y].push_back(x);

    for(i=1;i<=n;i++)f(i);
    for(i=n;i>=1;i--)if(v[d[i]]){o++; g(d[i]);}

    p<<o<<'\n';
    for(i=1;i<=o;i++){for(int t : c[i])p<<t<<" "; p<<'\n';}
    return 0;
    }