Pagini recente » Cod sursa (job #974672) | Cod sursa (job #1711181) | Istoria paginii runda/lol_asd | Cod sursa (job #1478741) | Cod sursa (job #536168)
Cod sursa(job #536168)
#include<iostream>
#include<fstream>
#include<vector>
#include<limits.h>
#define INF 1001
using namespace std;
int minim(int a,int b){
if(a<b)return a;
return b;}
int main(){
int n,d;
vector< vector<int> > graf;
ifstream f("royfloyd.in");
f>>n;
graf.resize(n);
for(int i=0;i<n;i++)graf[i].resize(n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
f>>d;
if(i!=j&&d==0)graf[i][j]=INF;
else graf[i][j]=d;}
f.close();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<graf[i][j]<<' ';cout<<endl;}
for(int k=0;k<n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(graf[i][j]==INF)graf[i][j]=INF;
else graf[i][j]=minim(graf[i][j],graf[i][k]+graf[k][j]);
ofstream g("royfloyd.out");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
if(graf[i][j]==INF)g<<"0 ";
else g<<graf[i][j]<<' ';g<<endl;}
g.close();
return 0;}