Pagini recente » Cod sursa (job #1656520) | Cod sursa (job #132831) | Cod sursa (job #1885883) | Cod sursa (job #2291849) | Cod sursa (job #2273222)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
int n, m, dx, dy, dist[30001];
vector<int> l[30001], d[30001];
int main(){
int i, a, b, ds;
ifstream fin ("sate.in");
fin >> n >> m >> dx >> dy;
for (i=0; i<m; i++){
fin >> a >> b >> ds;
l[a].push_back(b);
d[a].push_back(ds);
l[b].push_back(a);
d[b].push_back(-ds);
}
fin.close();
for (i=1; i<=n; i++)
dist[i]=-1;
dist[dx]=0;
queue<int> q;
q.push(dx);
while (!q.empty()){
a=q.front();
q.pop();
for (i=0; i<l[a].size(); i++){
b=l[a][i];
if (dist[b]==-1){
dist[b]=dist[a]+d[a][i];
q.push(b);
}
}
}
ofstream fout ("sate.out");
fout << dist[dy];
fout.close();
return 0;
}