Cod sursa(job #2543886)

Utilizator dumitrustefaniaDumitru Stefania dumitrustefania Data 11 februarie 2020 16:55:30
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <bits/stdc++.h>
#include <cstring>
# define pb push_back
#define nmax 15
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int n,i,j,k,v[101][101];
/*
void dfs(int k)
{

   if(ok)
    for(int i=0; i<v[k].size(); i++)
    {
        if(fr[v[k][i]]==0)
        {
            x=3-fr[k];
            fr[v[k][i]]=x;

            //g<<fr[k]<<" "<<fr[v[k][i]]<<'\n';

            dfs(v[k][i]);
        }
        else
        {
            if(fr[v[k][i]]!=3-fr[k])
                ok=0;
        }

    }
}*/

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        f>>v[i][j];

    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
       if (v[i][k] && v[k][j] && (v[i][j] > v[i][k] + v[k][j] || v[i][j]==0) && i != j)
            v[i][j] = v[i][k] + v[k][j];

for(i=1;i<=n;i++)
{
     for(j=1;j<=n;j++)
        g<<v[i][j]<<" ";
     g<<'\n';
}



    return 0;
}