Pagini recente » Borderou de evaluare (job #804587) | Cod sursa (job #871345) | Cod sursa (job #226464) | Cod sursa (job #83196) | Cod sursa (job #2298547)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector<pair <int,int> >a[30100];
queue <int> q;
int d[30100],Y,n,viz[30100];
int bfs(int S)
{
int i,nod;
q.push(S);
// for(i=1;i<=n;i++)d[i]=-1;
d[S]=0;
viz[S]=1;
while(!q.empty())
{
nod=q.front();
for(i=0;i<a[nod].size();i++)
{
int x=a[nod][i].first;
int y=a[nod][i].second;
if(viz[x]==0)
{
viz[x]=1;
q.push(x);
d[x]=d[nod]+y;
if(x==Y)return d[Y];
}
}
q.pop();
}
}
int m,i,x,p1,dist,p2;
int main()
{
f>>n>>m>>x>>Y;
for(i=1;i<=m;i++)
{
f>>p1>>p2>>dist;
a[p1].push_back({p2,dist});
a[p2].push_back({p1,-dist});
}
g<<bfs(x);
return 0;
}