Pagini recente » Cod sursa (job #2724154) | Cod sursa (job #1805642) | Cod sursa (job #389087) | Cod sursa (job #1814819) | Cod sursa (job #2330495)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
vector <int> v[300005];
vector <int> d[300005];
int n,m,q[300006],a,b,ls,ld,poz[300006];
bool bgr[300006];
void bfs(){
int cld=ld;
for(int i=ls;i<=cld;i++){
int nc=q[i];
bgr[nc]=true;
if(nc==b){
fout<<poz[b];
return;
}
for(int ii=0;ii<v[nc].size();ii++){
if(!bgr[v[nc][ii]]){
ld++;
q[ld]=v[nc][ii];
poz[v[nc][ii]]=poz[nc]+d[nc][ii];
}
}
}
ls=cld+1;
bfs();
}
int main()
{
int x,y,dax;
fin>>n>>m>>a>>b;
for(int i=0;i<m;i++){
fin>>x>>y>>dax;
d[x].push_back(dax);
d[y].push_back(-dax);
v[x].push_back(y);
v[y].push_back(x);
}
q[0]=a;
bfs();
return 0;
}