Cod sursa(job #1843899)

Utilizator lpsasuSasu Alexandru lpsasu Data 9 ianuarie 2017 15:29:12
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iostream>
using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

int n;
bool ok;
int v[100][100],c[100][100];


int main()
{
    in>>n;
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            in>>v[i][j];
    ok=true;
    while(ok)
    {
        ok=false;
        for(int k=0; k<n; k++)
        {
            for(int i=0; i<n; i++)
            {
                for(int j=0; j<n; j++)
                {
                    if(v[i][j]>v[i][k]+v[k][j]&&v[i][j]!=0&&v[i][k]!=0&&v[k][j]!=0)
                    {
                        v[i][j]=v[i][k]+v[k][j];
                        ok=true;
                    }
                }
            }
        }
    }
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
            out<<v[i][j]<<' ';
        out<<'\n';
    }
}