Pagini recente » Cod sursa (job #1169827) | Cod sursa (job #2502025) | Cod sursa (job #2327387) | Cod sursa (job #1325604) | Cod sursa (job #3257185)
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define eb emplace_back
#define pii pair<int, int>
#define tpl tuple<int, int, int>
#define quad tuple<int, int, int, int>
#define OO LLONG_MAX / 2
#define oo INT_MAX/2
using namespace std;
const string fn("sate");
ifstream in(fn + ".in");
ofstream out(fn + ".out");
#define cin in
#define cout out
const int MAX = 3e4;
int n,m,src,dst;
int cost[MAX+5];
vector<pii> g[MAX+5];
void solve()
{
cin>>n>>m>>src>>dst;
fill(cost,cost+n+1,oo);
for(int i=1,x,y,w;i<=m;i++)
{
cin>>x>>y>>w;
g[y].eb(x,-w);
g[x].eb(y,w);
}
queue<int> que;
que.emplace(src);
cost[src]=0;
while(!que.empty())
{
int node=que.front();
que.pop();
for(auto x: g[node])
if(cost[x.first]>cost[node]+x.second)
cost[x.first]=cost[node]+x.second,que.emplace(x.first);
}
cout<<cost[dst];
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int q = 1;
// cin>>q;
while (q--)
solve();
exit(0);
}