Cod sursa(job #1780236)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 15 octombrie 2016 22:37:09
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
//
//  main.cpp
//  Roy-Floyd
//
//  Created by Albastroiu Radu on 10/15/16.
//  Copyright © 2016 Albastroiu Radu. All rights reserved.
//

#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
#include <cmath>

#define Max 1<<30

using namespace std;

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

long long i, n, j, k, a[101][101], x;
int main()
{
    fin >> n;

    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(i!=j)
                a[i][j] = Max;

    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
            fin>>x;
            a[i][j] = x;
        }
    
    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(a[i][k] + a[k][j] < a[i][j] && i!=j)
                    a[i][j] = a[i][k] + a[k][j];
    
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            fout<<a[i][j]<<" ";
        fout<<"\n";
    }
    
    return 0;
}