Cod sursa(job #3285248)

Utilizator AndiBoisteanuBoisteanu Andrei AndiBoisteanu Data 12 martie 2025 17:18:50
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("txt.in");
ofstream g("txt.out");

struct muchie{
    int j;
    int c;
};

int n,m;
vector<vector<muchie> > v;
int d[10000],viz[10000];

int main()
{
    f>>n>>m;
    int x,y,c;
    v.resize(n+1);
    for(int i=1;i<=n;i++) d[i]=INT_MAX;
   for(int i=1;i<=n;i++)
   {
       f>>x>>y>>c;
       muchie e;
       e.j=y;
       e.c=c;
       v[x].push_back(e);
   }
    d[1]=0;
    for(int i=1;i<=n-1;i++)
    {
        int dmin=INT_MAX,s=0;
        for(int j=1;j<=n;j++)
        {
            if(dmin>d[j] && !viz[j])
                dmin=d[j],s=j;
        }
        for(int j=0;j<v[s].size();j++)
            if(d[v[s][j].j]>d[s]+v[s][j].c && !viz[v[s][j].j]) d[v[s][j].j]=d[s]+v[s][j].c;
        viz[s]=1;
    }
    for(int i=1;i<=n;i++)
    {
        if(d[i]==INT_MAX) g<<-1<<" ";
        else g<<d[i]<<" ";
    }
    return 0;
}