Pagini recente » Cod sursa (job #1306766) | Cod sursa (job #2147884) | Cod sursa (job #1821968) | Cod sursa (job #1153277) | Cod sursa (job #2967977)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("sate.in");
ofstream cout ("sate.out");
int viz[30010],coada[30010];
vector <pair <int,int>> lista[30010];
void bfs(int nod)
{
int inc,sf,i;
viz[nod]=1;
coada[1]=nod;
inc=1;
sf=1;
while (inc<=sf)
{
for (i=0; i<lista[coada[inc]].size(); i++)
if (viz[lista[coada[inc]][i].first]==0)
{
sf++;
coada[sf]=lista[coada[inc]][i].first;
viz[lista[coada[inc]][i].first]=viz[coada[inc]]+lista[coada[inc]][i].second;
}
inc++;
}
}
int main()
{
int n,m,nod1,nod2,x,y,z,i,rez;
cin>>n>>m>>nod1>>nod2;
for (i=1; i<=m; i++)
{
cin>>x>>y>>z;
lista[x].push_back({y,z});
lista[y].push_back({x,0-z});
}
bfs(nod1);
rez=viz[nod2]-1;
if (rez<0)
cout<<0-rez;
else
cout<<rez;
return 0;
}