Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINS
- #include <fstream>
- #include <vector>
- #include <string>
- #include <set>
- #include <algorithm>
- #include <map>
- #include <queue>
- using namespace std;
- //bool dfs(int v, int prev){
- // used[v] = 1;
- // for (int i = 0; i < mat[v].size(); i++)
- // {
- //
- // if (used[mat[v][i]] == 0){
- // dfs(mat[v][i], v);
- // used[v] = 2;
- // }
- // }
- // used[v] = 2;
- // return true;
- //}
- //
- //bool cheker(vector<int> ch, int f){
- // for (int i = f; i < ch.size(); i++){
- // if (ch[i] != 2){
- // return false;
- // }
- //
- // }return true;
- //}
- struct edges{
- int x, y, value;
- };
- int main(){
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- long long n, m, s;
- fin >> n >> m;
- vector<edges> edge(m);
- vector <vector<int>> d(n, vector<int>(n, INT_MAX));
- for (int i = 0; i < m; i++){
- int a, b, c;
- fin >> a >> b >> c;
- a--;
- b--;
- d[a][b] = c;
- //d[b][a] = c;
- }
- for (int i = 0; i < n; i++){
- d[i][i] = 0;
- }
- for (int k = 0; k < n; k++){
- for (int i = 0; i < n; i++){
- for (int j = 0; j < n; j++){
- if (d[i][k] != INT_MAX && d[k][j] != INT_MAX){
- d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
- }
- }
- }
- }
- for (int i = 0; i < n; i++){
- for (int j = 0; j < n; j++){
- if (d[i][j] != INT_MAX){
- fout << d[i][j] << ' ';
- }
- else{
- fout << ' ';
- }
- }
- fout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment