Pagini recente » Cod sursa (job #1049509) | Cod sursa (job #631890) | Cod sursa (job #2640482) | Cod sursa (job #2248680) | Cod sursa (job #2581860)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream cin("sate.in");
ofstream cout("sate.out");
vector<pair<int,int> > vec[30003];
bool ok[30003];
queue<pair<int,int> > q;
int main()
{
int n,m,x,y,a,b,cost;
cin>>n>>m>>x>>y;
for(int i=1;i<=m;++i)
{
cin>>a>>b>>cost;
vec[a].push_back({b,cost});
vec[b].push_back({a,-cost});
}
q.push({x,0});
ok[x]=1;
while(q.front().first!=y)
{
int nod=q.front().first;
int dist=q.front().second;
ok[nod]=1;
q.pop();
for(int i=0;i<vec[nod].size();++i)
if(ok[vec[nod][i].first]==0)
ok[vec[nod][i].first]=1,q.push({vec[nod][i].first,dist+vec[nod][i].second});
}
cout<<q.front().second;
return 0;
}