Pagini recente » Istoria paginii utilizator/yamasfurniture | Cod sursa (job #1757009) | Cod sursa (job #1414819) | Cod sursa (job #1286771) | Cod sursa (job #2787259)
#include <iostream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;
vector<vector<pair<int,int>>>adj;
vector<int>dist;
queue<int>q;
void bfs(int u)
{
dist[u]=0;
q.push(u);
while(!q.empty())
{
int p=q.front();
q.pop();
for(pair<int,int> j:adj[p])
{
if(dist[j.first]==INT_MIN)
{
if(j.first<p)
dist[j.first]=dist[p]-j.second;
else
dist[j.first]=dist[p]+j.second;
q.push(j.first);
}
}
}
}
int main() {
int n,m,x,y,a,b,d;
cin>>n>>m>>x>>y;
adj.resize(n+1);
dist.resize(n+1);
for(int i=1;i<=m;i++)
{
cin>>a>>b>>d;
adj[a].push_back(make_pair(b,d));
adj[b].push_back(make_pair(a,d));
}
for(int i=1;i<=n;i++)
{
dist[i]=INT_MIN;
}
bfs(x);
cout<<dist[y];
return 0;
}