Cod sursa(job #3258175)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 21 noiembrie 2024 13:55:15
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <fstream>
#include <vector>
#define NMAX 50002
using namespace std;
ifstream  fin("dijkstra.in");
ofstream fout("dijkstra.out");
int N,M,d[NMAX],viz[NMAX];
vector<vector<pair<int,int>>>graph(NMAX+1);

void citire()
{
    int a,b,c;
    fin>>N>>M;

    for(int i=1; i<=M; i++)
    {
        fin>>a>>b>>c;
        graph[a].push_back({b,c});
        graph[b].push_back({b,c});
    }
}

int main()
{
    citire();

    d[1]=0;
    viz[1]=1;

    for(int i=1; i<=N; i++)
    {
        int vmin,nod;
        nod=0;
        vmin=1000000002;

        for(int j=1; j<=N; j++)
        {
            if(!viz[j] && d[j]<vmin)
            {
                vmin=d[j];
                nod=j;
            }
        }

        viz[nod]=1;
        for(int j=0; j<=graph[nod].size(); j++)
        {
            int x,y;
            x=graph[nod][j].first();
            y=graph[nod][j].second();
            if(!viz[] && d[nod]+graph[nod][j].second()<d[j])
            {
                d[j]=d[nod]+graph[nod][j].second();
            }
        }
    }

    for(int i=2; i<=N; i++)
    {
        fout<< d[i] << " ";
    }
    fout<< "\n";

    return 0;
}