Pagini recente » Cod sursa (job #100902) | Cod sursa (job #2915871) | Cod sursa (job #484265) | Cod sursa (job #3241616) | Cod sursa (job #3247206)
#include <fstream>
#include <vector>
#include <queue>
#define DIM 30001
using namespace std;
ifstream fin ("sate.in");
ofstream fout("sate.out");
struct muchie
{
int vop;
int cost;
};
vector<muchie>L[DIM];
queue<int>Q;
int d[DIM];
bool viz[DIM];
int n,m,x,y,a,b,c;
void bfs(int x)
{
Q.push(x);
viz[x]=1;
while(!d[y])
{
x=Q.front();
Q.pop();
for(int i=0;i<L[x].size();i++)
{
int y=L[x][i].vop, cost=L[x][i].cost;
if(!viz[y])
{
if(y>x)
d[y]=d[x]+cost;
else
d[y]=d[x]-cost;
viz[y];
Q.push(y);
}
}
}
}
int main()
{
fin>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{
fin>>a>>b>>c;
L[a].push_back({b,c});
L[b].push_back({a,c});
}
bfs(x);
fout<<d[y];
return 0;
}