Acasa Tehnologie Varf critic

Varf critic

by Dragos Schiopu

>

#include <stdio.h>
#include <conio.h>

int min(int a, int b)
{
if(a<=b) return a;
else return b;
}

void main()
{
int ok,i,j,k,n,a[20][20],b[20][20],l,m,o,p;
//citire matr adiacenta
FILE *f=fopen("C:intrare.txt","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];
printf("Noduri critice: ");
for(l=1;l<=n;l++)
{
m=n; ok=1;
for(i=1;i<=n;i++)
for(j=l;j<=n-1;j++)
b[i][j]=b[i][j+1];

for(i=1;i<=n-1;i++)
for(j=l;j<=n-1;j++)
b[j][i]=b[j+1][i];
m--;

for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if((b[i][j]==0)&&(i!=k)&&(j!=k)) b[i][j]=min(b[i][k],b[k][j]);


for(i=1;i<=m;i++)
for(j=1;j<=m;j++) if(i!=j) if(b[i][j]!=1) ok=0;
if(ok==0) printf(" %d ",l);

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];
}

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];

printf("nMuchii critice: ");
for(o=1;o<=n-1;o++)
for(p=o+1;p<=n;p++)
{
ok=1;
b[o][p]=0;

for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if((b[i][j]==0)&&(i!=k)&&(j!=k)) b[i][j]=min(b[i][k],b[k][j]);


for(i=1;i<=n;i++)
for(j=1;j<=n;j++) if(i!=j) if(b[i][j]!=1) ok=0;
if(ok==0) printf(" [%d,%d] ",o,p);

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];
}

getch();
clrscr();
}

s-ar putea sa-ti placa