Pagini recente » Cod sursa (job #2902193) | Cod sursa (job #2631107) | Cod sursa (job #2063811) | Cod sursa (job #336401) | Cod sursa (job #2854935)
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
vector<int>G[30005];
vector<int>cost[30005];
int dist[30005];
queue<int>q;
void BFS(){
while(!q.empty()){
int nod=q.front();q.pop();
for(int i=0;i<G[nod].size();i++){
if(dist[G[nod][i]]==0){
dist[G[nod][i]]=dist[nod]+cost[nod][i];
q.push(G[nod][i]);
}
}
}
}
int main()
{
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,x,y,a,b,d;fin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
fin>>a>>b>>d;
G[a].push_back(b);cost[a].push_back(d);
G[b].push_back(a);cost[b].push_back(-d);
}
dist[x]=1;q.push(x);BFS();fout<<dist[y]-1<<'\n';
return 0;
}