Pagini recente » Cod sursa (job #3199411) | Cod sursa (job #1422653) | Cod sursa (job #2971021) | Cod sursa (job #1397542) | Cod sursa (job #2988497)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=30005;
int n, m, x, y;
vector<pair<int, int> >G[NMAX];
vector<bool> isvisited;
vector <int>dist;
void dfs(int node)
{
isvisited[node]=true;
for(int i=0; i<G[node].size(); i++)
{
int son=G[node][i].first, d=G[node][i].second;
if(!isvisited[son])
{
dist[son]=dist[node]+d;
dfs(son);
}
}
}
int main()
{
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
cin>>n>>m>>x>>y;
int a, b, d;
for(int i =1; i<=m; i++)
{
cin>>a>>b>>d;
if(a>b)
swap(a, b);
G[a].push_back({b, d});
G[b].push_back({a, -d});
}
dist.resize(n+1, 0);
isvisited.resize(n+1, false);
dfs(x);
cout<<dist[y];
return 0;
}