Pagini recente » Cod sursa (job #1539286) | Cod sursa (job #662928) | Cod sursa (job #925847) | Cod sursa (job #2487973) | Cod sursa (job #797040)
Cod sursa(job #797040)
#include<cstdio>
#include<vector>
#include<deque>
#include<algorithm>
using namespace std;
int viz[30004],n,i,j,k,x,y,a,b,m,q;
deque<int>c;
vector<pair<int,int> > v[30005];
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d %d %d %d",&n,&m,&x,&y);
for (i=1;i<=m;i++)
scanf("%d %d %d",&a,&b,&k),v[a].push_back(make_pair(b,k)),v[b].push_back(make_pair(a,-k));
c.push_back(x);
while(!c.empty())
{
int t=c.front();
for (i=0;i<v[t].size();i++)
if (viz[v[t][i].first]==0)
{
c.push_back(v[t][i].first);
viz[v[t][i].first]=viz[t]+v[t][i].second;
}
if(viz[y]!=0) break;
c.pop_front();
}
printf("%d\n",viz[y]);
return 0;
}