Cod sursa(job #2449288)

Utilizator CharacterMeCharacter Me CharacterMe Data 19 august 2019 09:23:40
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
///N=100
///D=1000
using namespace std;
///
int n, i, j, k;
int dist[101][101];
///
void read();
void solve();
void write();
int main()
{
    read();
    solve();
    write();
    return 0;
}
void read(){
    freopen("royfloyd.in", "r", stdin);
    scanf("%d", &n);
    for(i=1; i<=n; ++i)
        for(j=1; j<=n; ++j) scanf("%d", &dist[i][j]);
    fclose(stdin);
}
void solve(){
    for(k=1; k<=n; ++k)
        for(i=1; i<=n; ++i)
            for(j=1; j<=n; ++j) if(i!=j && (dist[i][j]>dist[i][k]+dist[k][j] || !dist[i][j]) && dist[i][k] && dist[k][j])dist[i][j]=dist[i][k]+dist[k][j];
}
void write(){
    freopen("royfloyd.out", "w", stdout);
    for(i=1; i<=n; ++i){
        for(j=1; j<=n; ++j) printf("%d ", dist[i][j]);
        printf("\n");
    }
    fclose(stdout);
}