Pagini recente » Cod sursa (job #755254) | Cod sursa (job #3218255) | Cod sursa (job #494951) | Cod sursa (job #243722) | Cod sursa (job #2290699)
#include <bits/stdc++.h>
#define Nmax 30005
#define inf 1<<30
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int d[Nmax],viz[Nmax];
vector < pair<int, int> > mat[Nmax];
queue < pair<int, int> > coada;
int n,m,a,b,c,x,y;
bool incoada[Nmax];
int parc(int vf)
{
viz[vf]=1;
coada.push({vf,0});
while(!coada.empty())
{
vf=coada.front().first;
coada.pop();
if(vf==y)
return d[vf];
for(int i=0;i<mat[vf].size();i++)
{
if(!viz[mat[vf][i].first])
{
viz[mat[vf][i].first]=1;
d[mat[vf][i].first]=mat[vf][i].second+d[vf];
coada.push({mat[vf][i].first,d[mat[vf][i].first]});
}
}
}
}
int main()
{
fin>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{
fin>>a>>b>>c;
mat[a].push_back({b,c});
mat[b].push_back({a,-c});
}
fout<<parc(x);
return 0;
}