Pagini recente » Cod sursa (job #359259) | Cod sursa (job #2405979) | Cod sursa (job #3152785) | fmi-no-stress-9-warmup/solutii | Cod sursa (job #1856585)
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("bellmanford.in");
ofstream out("bellmanford.out");
int N;
struct edge {int next, cost;};
vector <edge> g[50001];
bool v[50001];
queue <int> Q;
int best[50001];
void citire()
{
int M;
in>>N>>M;
int m1,m2,c;
edge aux;
for (int i=1;i<=M;i++)
{
in>>m1>>m2>>c;
aux.next=m2;
aux.cost=c;
g[m1].push_back(aux);
aux.next=m1;
g[m2].push_back(aux);
}
}
int main()
{
citire();
int S=1;
Q.push(S);
best[S]=0;
v[S]=true;
while (!Q.empty())
{
int node=Q.front();
v[node]=false;
Q.pop();
for (auto it=1;it<g[node].size();it++)
{
if(best[it.next]>best[node]+it.cost)
{
best it.next=best[node]+it.cost;
}
if (in[it.next]==false)
{
Q.push(it.next);
}
}
}
for (int i=2;i<=N) out<<best[i]<<" ";
return 0;
}