Cod sursa(job #2518973)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 6 ianuarie 2020 20:05:09
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define Dim 101
#define oo 1e9+1
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int N,dp[Dim][Dim][2],A[Dim][Dim];


int main()
{
    f>>N;
    for(int i=1;i<=N;i++)
    for(int j=1;j<=N;j++)
    {
        f>>dp[i][j][0];
        if( dp[i][j][0] == 0 && i!=j ) dp[i][j][0]=oo;

    }

    for(int k=1;k<=N;k++)
    for(int i=1;i<=N;i++)
    for(int j=1;j<=N;j++)
    dp[i][j][k%2]=min( dp[i][j][ ( k - 1 ) % 2 ],dp[i][k][ ( k - 1 ) % 2]+
    dp[k][j][ ( k - 1 ) % 2] );

    for(int i=1;i<=N;i++,g<<'\n')
    for(int j=1;j<=N;j++) g<<dp[i][j][N%2]<<" ";

    return 0;
}