1 -
*/
#include "STDLIB.h"
#include "stdio.h"
#include "conio.h"
#include "iostream.h"
#include "VALUES.H"
int S=0;
int i,j,n,m;
void fread(int a[50][50]) // Functia de citire din fisier
{
FILE *f=fopen("in.txt","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);
fclose(f);
printf(" S-a citit Fisierul");
printf("\n\nPress any key to continue...");
}
void fprint(int a[50][50]) // Functia de scriere in fisier
{
FILE *f=fopen("out.txt","w");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fprintf(f,"%3d",a[i][j]);
fprintf(f,"\n");
}
void print(int a[50][50]) // Functia de afisare pe ecran
{ printf("\n\n\tAFISARE\n\n");
for(i=1;i<=n;i++)
{
printf("\n");
for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
}
}
void vecin(int a[50][50])
{ int v;
FILE *f=fopen("vecin.txt","w");
printf("\n\n\tVECIN\n\n");
printf("\n Varful: ");
scanf("%d",&v);
for(i=1;i<=n;i++)
if(a[v][i]==1 && v!=i)
{
printf("\n Vecin: %d",i);
fprintf(f,"\n Vecin: %d",i);
}
}
/*
void subgraf(int a[50][50]) //subgraf
{ int b[50][50];
printf("\n\n\tSUBGRAF\n\n");
FILE *g=fopen("in2.txt","r");
fscanf(g,"%d",&m);
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
fscanf(g,"%d",&b[i][j]);
fclose(g);
printf("\n\n S-a citit Fisierul 2 \n\n");
printf("\n\nAfisam Matricea 2\n\n");
print(b);
// INCOMPLET
}
*/
int min(int X,int Y)
{ int MIN;
if(X
else
MIN=Y;
return MIN;
}
void RW(int a[50][50])
{ int k,i,j;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0 && i!=k && j!=k)
a[i][j]=min(a[i][k],a[k][j]);
print(a);
}
int conex(int a[50][50])
{ int i,j,c=1;
RW(a);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0)
c=0;
if(c==1)
printf("\n\nGraf Conex\n");
else
printf("\n\nGraful Nu-i Conex\n");
return c;
}
void mcrit(int a[50][50])
{ int x,y,c;
printf("\nMuchia dintre: x si y ");
scanf("%d %d",&x,&y);
a[x][y]=a[y][x]=0;
c=conex(a);
if (c==0)
printf("\n\nMuchia e Critica\n");
else
printf("\n\nMuchia nu-i critica\n");
}
void pcrit(int a[50][50])
{ int k,i,j,v,c;
printf("\nVarful: ");
scanf("%d",&v);
for(i=1;i<=n;i++)
a[v][i]=a[i][v]=0;
printf("\n Matricea rezultata:\n");
print(a);
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0 && i!=k && j!=k && i!=v && j!=v)
a[i][j]=min(a[i][k],a[k][j]);
print(a);
conex(a);
/*
c=conex(a);
if(c==1)
printf("\n\nVarful %d NECritic\n",v);
else
printf("\n\nVarful %d Critic\n",v);
*/
}
void main()
{ clrscr();
int a[50][50];
fread(a);
print(a);
// vecin(a);
// subgraf(a);
// RW(a);
// conex(a);
// mcrit(a);
pcrit(a);
getch();
}