Pagini recente » Cod sursa (job #1907416) | Cod sursa (job #446529) | Cod sursa (job #3280330) | Cod sursa (job #2494136) | Cod sursa (job #3247207)
#include <fstream>
#include <vector>
#include<queue>
#define DIM 30001
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,s,f,x,y,c;
struct muchie{
int x,c;
};
vector<muchie>v[DIM];
int d[DIM];
bool viz[DIM];
queue<int>q;
int main()
{
fin>>n>>m>>s>>f;
for(int i=1;i<=m;i++){
fin>>x>>y>>c;
v[x].push_back({y,c});
v[y].push_back({x,c});
}
q.push(s);
viz[s]=1;
while(d[f]==0){
int x=q.front();
q.pop();
for(int i=0;i<v[x].size();i++){
int y=v[x][i].x;
int cost=v[x][i].c;
if(viz[y]==0){
if(y>x)
d[y]=d[x]+cost;
else
d[y]=d[x]-cost;
viz[y]=1;
q.push(y);
}
}
}
fout<<d[f];
return 0;
}