Cod sursa(job #802285)

Utilizator oancea_horatiuOancea Horatiu oancea_horatiu Data 26 octombrie 2012 11:51:15
Problema Componente tare conexe Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream d("ctc.in");
ofstream o("ctc.out");
int n,m,i,j,a[5009][5009],t,x,y,k,ct[5009][5009];
bool s[5009];
int main()
  {
    vector<int> v[5009];
    d>>n>>m;
    for (i=1;i<=m;i++) {d>>x>>y; a[x][y]=1;};
    for (i=1;i<=n;i++) a[i][i]=1;
    for (k=1;k<=n;k++)
      for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
          if (a[i][j]==0) a[i][j]=a[k][j]*a[i][k];
    k=1;
    for (i=1;i<=n;i++)
      if (!s[i])
        {
          for(j=1;j<=n;j++)
            if(a[i][j]*a[j][i]==1)
              {
                v[k].push_back(j);
                s[j]=1;
              };
          s[i]=1;
          k++;
        }
    k--;
    o<<k<<'\n';
    for (i=1;i<=k;i++)
      {
        for (j=0;j<=v[i].size()-1;j++) o<<v[i][j]<<' ';
        o<<'\n';
      };
  }