Nu aveti permisiuni pentru a descarca fisierul grader_test35.in
Cod sursa(job #151330)
Utilizator | Data | 7 martie 2008 23:50:53 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#include<iostream>
#include<stdio.h>
int c[100][100], i,j,k,n;
using namespace std;
int main ()
{
freopen("royfloyd.in","r",stdin);
cin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
cin>>c[i][j];
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(c[i][k]!=0 && c[k][j]!=0 && (c[i][j]>c[i][k]+c[k][j] || c[i][j]==0) && i!=j) c[i][j]=c[i][k]+c[k][j];
freopen("royfloyd.out","w",stdout);
for(i=1; i<=n; i++)
{
cout<<c[i][1];
for(j=2; j<=n; j++)
cout<<' '<<c[i][j];
cout<<endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}