Pagini recente » Cod sursa (job #591915) | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #2497538) | Cod sursa (job #1721551)
#include <fstream>
#include <vector>
#include <queue>
#define DIM 30005
using namespace std;
vector<pair<int,int> > adj[DIM];
int n,m,x,y,dist[DIM];
ofstream fout("sate.out");
int traverse() {
queue<int> q;
q.push(x);
dist[x]=1;
while(!q.empty()) {
int u=q.front();
for(int i=0;i<adj[u].size();i++)
if(dist[adj[u][i].first]==0) {
dist[adj[u][i].first]=dist[u]+adj[u][i].second;
q.push(adj[u][i].first);
if(adj[u][i].first==y)
return dist[y]-1;
}
q.pop();
}
return dist[y]-1;
}
int main()
{
ifstream fin("sate.in");
fin>>n>>m>>x>>y;
int a,b,c;
for(int i=1;i<=m;i++) {
fin>>a>>b>>c;
adj[a].push_back({b,c});
adj[b].push_back({a,-c});
}
fout<<traverse();
return 0;
}