Pagini recente » Cod sursa (job #2305751) | Cod sursa (job #2405351) | Cod sursa (job #329700) | Cod sursa (job #492010) | Cod sursa (job #651014)
Cod sursa(job #651014)
#include <stdio.h>
int n, a[20][20], viz[20], d[20][20];
void citire()
{ int i,j;
FILE * f = fopen("proba","r");
fscanf(f,"%d", &n);
while(!feof(f))
{ fscanf(f,"%d %d", &i, &j);
a[i][j]=1; d[i][j]=1;
a[i][i]=1; d[i][i]=1;
a[j][j]=1; d[j][j]=1; }
}
/* afisarea componentelor tare conexe */
int conex_tare()
{ /* Roy Warshall */
int i,j,k;
int ok;
ok=1;
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(d[i][k] && d[k][j])
d[i][j]=1;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(d[i][j]==0)
ok=0;
return ok;
}
void df(int vf)
{ int i; viz[vf]=1;
printf("%d ",vf); //afisare
for(i=1; i<=n; i++)
if((d[vf][i]==1 && d[i][vf]) && viz[i]==0)
df(i);
}
int main()
{ int i;
citire();
if(conex_tare())
printf("este tare conex\n");
else printf("nu este tare conex\n");
df(1);
for (i=1; i<=n; i++)
if(viz[i]==0)
{ printf("\n"); df(i); }
printf("\n");
return 0;
}