Cod sursa(job #3359881)

Utilizator mrvalentynTime Limit Exceeded mrvalentyn Data 5 iulie 2026 19:00:00
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.29 kb
/*  
    *
    * soon on twitch : ex3qute 
    * 
    * ax ah al
    * kwxkwxkxkxwkxkwxkw
    * dumnezeu sa o ierte
*/


#include <bits/stdc++.h>  
using namespace std;  
#define ull unsigned long long  
#define ll long long  
#define pb push_back  
#define fastio ios_base::sync_with_stdio(0); cin.tie(nullptr);  
const int MOD = 1e9+7;
int di[4]={0,0,-1,1};  
int dj[4]={-1,1,0,0};  

const string FILENAME = "cmlsc";
ifstream f(FILENAME + ".in");
ofstream g(FILENAME + ".out");
#ifndef exe
#define cin f
#define cout g
#endif

int a[101][101];
int dp[101][101];


signed main(){   
    
    
    int n;
    cin >> n;


    for(int i=1;i<=n;++i) {
        for(int j=1;j<=n;++j) cin >> a[i][j];
    }

    for(int i=1;i<=n;++i) dp[i][i] = 0;

    for(int i=1;i<=n;++i){
        for(int j=1;j<=n;++j) {
            if(a[i][j] > 0) dp[i][j] = a[i][j];
            else if(i != j) dp[i][j] = INT_MAX;
        
        }
    }

    for(int k=1;k<=n;++k) {
        for(int i=1;i<=n;++i)  {
            for(int j=1;j<=n;++j ) {
                if(dp[i][j] > dp[i][k] + dp[k][j]) {
                    dp[i][j] = dp[i][k] + dp[k][j];
                }
            }
        }
    }


    for(int i=1;i<=n;++i, cout << '\n')  {
        for(int j=1;j<=n;++j) {
            cout << dp[i][j] << ' ';
        }
    }

    return 0;
}