Pagini recente » Borderou de evaluare (job #2270036) | Borderou de evaluare (job #1714863) | Borderou de evaluare (job #2113178) | Borderou de evaluare (job #2783405) | Cod sursa (job #276393)
Cod sursa(job #276393)
#include <stdio.h>
#define MAX 1000
int a[MAX][MAX], n, m, k=0;
int main()
{
int k, i, j, x, y;
FILE *fi=fopen("ctc.in", "r"), *fo=fopen("ctc.out", "w");
fscanf(fi, "%d%d", &n, &m);
for(i=1; i<=m; i++)
{
fscanf(fi, "%d%d", &x, &y);
a[x][y]=1;
}
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if((a[i][j]==0)&&(i!=j)) a[i][j]=a[i][k]*a[k][j];
for(i=1; i<=n; i++)
if(!a[i][0])
{
k++;
for(j=1; j<=n; j++)
if((a[i][j]==a[j][i])&&(!a[j][0])) a[i][0]=a[j][0]=k;
}
fprintf(fo, "%d\n", k-a[1][0]+1);
for(j=a[1][0]; j<=k; j++)
{
for(i=1; i<=n; i++)
if(a[i][0]==j) fprintf(fo, "%d ", i);
fprintf(fo, "\n");
}
fclose(fi);
fclose(fo);
return 0;
}