Dijkastraアルゴリズムは最短ルートを求めます.


/*Dijkastra       */
#include 
using namespace std;
int main()
{
    int book[10];
    int dis[10];
    int e[10][10];
    int inf=999999999;
    int n,m,t1,t2,a,u;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(i==j)
                e[i][j]=0;
            else
                e[i][j]=inf;
        }
    }
    for(int i=1;i<=m;i++){
        cin>>t1>>t2>>a;
        e[t1][t2]=a;
    }
    for(int i=1;i<=n;i++)
        dis[i]=e[1][i];
    for(int i=2;i<=n;i++)
        book[i]=0;
    book[1]=1;
    //Dijkstra      
    for(int i=1;i<=m-1;i++){
        int min=inf;
        for(int j=2;j<=n;j++){
            if(dis[j]dis[u]+e[u][j])
                    dis[j]=dis[u]+e[u][j];
            }
        }
    }
    for(int i=1;i<=n;i++)
        cout<