Cod sursa(job #2693149)

Utilizator CoakazeRotaru Catalin Coakaze Data 4 ianuarie 2021 22:50:40
Problema Algoritmul Bellman-Ford Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 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;
    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;
        }
    int ok = 0;
    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;
}