Pagini recente » Cod sursa (job #1247573) | Cod sursa (job #1948210) | Cod sursa (job #1699538) | Cod sursa (job #1993162) | Cod sursa (job #1592276)
# include <fstream>
# include <vector>
# include <queue>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector <pair<int,int> > v[30001];
queue <int> q;
int n,m,x,y,d[30001];
bool p[30001];
void read()
{
int i,a,b,d;
f>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
f>>a>>b>>d;
v[a].push_back(make_pair(b,d));
v[b].push_back(make_pair(a,-d));
}
}
void BFS(int x)
{
int i,n;
bool ok=0;
p[x]=1;
q.push(x);
while(!q.empty()&&!ok)
{
x=q.front();
q.pop();
n=v[x].size();
for(i=0;i<n&&!ok;i++)
if(!p[v[x][i].first])
{
p[v[x][i].first]=1;
q.push(v[x][i].first);
d[v[x][i].first]=d[x]+v[x][i].second;
if(v[x][i].first==y)
ok=1;
}
}
}
int main()
{
read();
BFS(x);
g<<d[y];
f.close();
g.close();
return 0;
}