Cod sursa(job #2424827)

Utilizator FrincuFrinculeasa Alexandru Frincu Data 23 mai 2019 21:45:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb

#include<fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int m[10005][10005];
int n;
 
void roy()
{
    int k, i, j;
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (m[i][k] && m[k][j] && (m[i][j] > m[i][k] + m[k][j] || !m[i][j]) && i != j)
                    m[i][j] = m[i][k] + m[k][j];
               
                //// muchia ik si kj trebuie neaparat sa existe si i si j sa nu fie egale (nu ar avea sens)
                //// verifici daca costul ij e mai mare decat noul cost calculat prin ik si kj
                //// sau ij poate sa fie 0 si iarasi trebuie inlocuit cu noul cost calculat
 
}
int main()
{
   
    f >> n;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            f >> m[i][j];
    roy();
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++)
            g << m[i][j] << ' ';
        g << '\n';
    }
 
 
 
    return 0;
}