The minimum time required to send information from the first vertex to all other vertices. Input in the form of the following triangle. If it cannot be passed from I to J, it is represented by X.
Question: Pay attention to the input.
#include <iomanip>#include <iostream>using namespace std;#define INF 200000000int map[101][101], n;int mark[101], dist[101];int Dijkstra (){int i, j, k, min, max;memset(mark,0,sizeof(mark));for ( i = 1; i <= n; i++ )dist[i] = map[1][i];dist[1] = 0;mark[1] = 1;for ( i = 1; i <= n; i++ ){min = INF;for ( j = 1; j <= n; j++ )if ( !mark[j] && dist[j] < min ){k = j;min = dist[j];}if ( min == INF ) break;mark[k] = 1;dist[k] = min;for ( j = 1; j <= n; j++ )if ( !mark[j] && dist[k] + map[k][j] < dist[j] )dist[j] = dist[k] + map[k][j];}max = 0;for ( i = 1; i <= n; i++ )if ( dist[i] > max )max = dist[i];return max;}int main(){cin >> n;int i, j, num;for ( i = 2; i <= n; i++ ){for ( j = 1; j < i; j++ ){cin >> num;if ( cin.fail () ){map[i][j] = map[j][i] = INF;cin.clear ();cin.get ();}elsemap[i][j] = map[j][i] = num;}}cout << Dijkstra () << endl;return 0;}