Pagini recente » oni2006runda2 | Cod sursa (job #2721589) | Cod sursa (job #129158) | Cod sursa (job #574244) | Cod sursa (job #276421)
Cod sursa(job #276421)
#include <stdio.h>
#define MAX 100
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];
k=0;
fprintf(fo, "\n");
for(i=1; i<=n; i++)
if(!a[i][0])
{
k++;
fprintf(fo, "%d ", i);
for(j=1; j<=n; j++)
if((a[i][j]==a[j][i])&&(!a[j][0])&&(i!=j))
{
a[i][0]=a[j][0]=k;
fprintf(fo, "%d ", j);
}
fprintf(fo, "\n");
}
fclose(fo);
fo=fopen("ctc.out", "r+");
fprintf(fo, "%d", k);
fclose(fi);
fclose(fo);
return 0;
}