295B - Greg and Graph - CodeForces Solution


dp graphs shortest paths *1700

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main(){
    ll n, v;
    cin >> n;
    vector<vector<ll>> mat(n, vector<ll>(n));
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin >> mat[i][j];
    vector<ll> order(n), result(n);
    vector<bool> visited(n);
    for(int i=0;i<n;i++) {
        cin >> order[i];
        order[i]--;
    }
    for(int i=n-1;i>=0;i--) {
        ll sum = 0;
        int k = order[i];
        visited[k] = 1;
        for(int i=0;i<n;i++) {
            for(int j=0;j<n;j++) {
                mat[i][j] = min(mat[i][j], mat[i][k] + mat[k][j]);
                if(visited[i] && visited[j]) sum += mat[i][j];
            }
        }
        result[i] = sum;
    }
    for(int i=0;i<n;i++) {
        if(i!=0) cout << " ";
        cout << result[i];
    }
}

	  				  		  	 	  		   		 		  	


Comments

Submit
0 Comments
More Questions

1547C - Pair Programming
550A - Two Substrings
797B - Odd sum
1093A - Dice Rolling
1360B - Honest Coach
1399C - Boats Competition
1609C - Complex Market Analysis
1657E - Star MST
1143B - Nirvana
1285A - Mezo Playing Zoma
919B - Perfect Number
894A - QAQ
1551A - Polycarp and Coins
313A - Ilya and Bank Account
1469A - Regular Bracket Sequence
919C - Seat Arrangements
1634A - Reverse and Concatenate
1619C - Wrong Addition
1437A - Marketing Scheme
1473B - String LCM
1374A - Required Remainder
1265E - Beautiful Mirrors
1296A - Array with Odd Sum
1385A - Three Pairwise Maximums
911A - Nearest Minimums
102B - Sum of Digits
707A - Brain's Photos
1331B - Limericks
305B - Continued Fractions
1165B - Polycarp Training