Cod sursa(job #2693150)

Utilizator CoakazeRotaru Catalin Coakaze Data 4 ianuarie 2021 22:51:47
Problema Algoritmul Bellman-Ford Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

struct muchie
{
    int x;
    int y;
    int val;
};

int d[50005];
vector <muchie> graph;

int main()
{
    ifstream f("bellmanford.in");
    ofstream g("bellmanford.out");
    int n, m;
    f>>n>>m;
    for(int i=0; i<m; i++)
    {
        muchie a;
        f>>a.x>>a.y>>a.val;
        graph.push_back(a);
    }
    for(int i=2; i<=n; i++)
        d[i] = 10001;
    d[1] = 0;
    for(int i=0; i<n-1; i++)
        for(auto j : graph)
            if(d[j.x] + j.val < d[j.y])
                d[j.y] = d[j.x] + j.val;
    for(auto j : graph)
        if(d[j.x] + j.val < d[j.y])
        {
            g<<'Ciclu negativ';
            return 0;
        }
    for(int i=2; i<=n; i++)
        g<<d[i]<<" ";
    return 0;
}