Cod sursa(job #1308500)

Utilizator refugiatBoni Daniel Stefan refugiat Data 4 ianuarie 2015 10:42:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<iostream>
#include<fstream>
#include<stack>
#include<limits.h>
#include<bitset>
#include<stdio.h>

using namespace std;
int main()
{
    ifstream si;
    si.open("royfloyd.in");
    FILE*so=fopen("royfloyd.out","w");
    int n;
    si>>n;
    int dist[n][n];
    int a,i,j;
    for(i=0;i<n;++i)
        for(j=0;j<n;++j)
        {
            si>>dist[i][j];
        }
    for(a=0;a<n;++a)
        for(i=0;i<n;++i)
            for(j=0;j<n;++j)
                if(dist[a][j]&&dist[i][a]&&(dist[i][j]>dist[i][a]+dist[a][j]||!dist[i][j])&&i!=j)
                    dist[i][j]=dist[i][a]+dist[a][j];
    for(i=0;i<n;++i)
    {
        for(j=0;j<n;++j)
            fprintf(so,"%i ",dist[i][j]);
        fprintf(so,"\n");
    }
}