Cod sursa(job #2031314)

Utilizator xnonGafita Andrei xnon Data 2 octombrie 2017 23:32:31
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <map>
#include <set>
#include <iterator>
#include <vector>
#include <queue>
#include <algorithm>
#include <stdio.h>
using namespace std;

#define maxi(a,b) ((a>b)? a : b)
#define FOR(i,x,n) \
for(int i = int(x);i <= int(n);i++)

int v[101][101],n;

int main(){
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);

    scanf("%i",&n);
    FOR(i,1,n)
        FOR(j,1,n)scanf("%i",&v[i][j]);

    FOR(k,1,n)
        FOR(i,1,n)
            FOR(j,1,n)if(v[i][k] && v[k][j] && (v[i][j]>v[i][k]+v[k][j] || !v[i][j]) && i!=j)v[i][j]=v[i][k]+v[k][j];

    FOR(i,1,n){
        FOR(j,1,n)printf("%i ",v[i][j]);
        printf("\n");}
return 0;
}