Pagini recente » Cod sursa (job #556514) | Cod sursa (job #961513) | Cod sursa (job #1630792) | Cod sursa (job #1990758) | Cod sursa (job #802285)
Cod sursa(job #802285)
#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';
};
}