Pagini recente » Cod sursa (job #2417775) | Cod sursa (job #3149061) | Cod sursa (job #419543) | Cod sursa (job #1807540) | Cod sursa (job #2273225)
#include <fstream>
#include <vector>
using namespace std;
int n, m, dx, dy, dist[30001], q[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;
int st, dr;
st=0; dr=0;
q[st]=dx;
while (st<=dr){
a=q[st];
st++;
for (i=0; i<l[a].size(); i++){
b=l[a][i];
if (dist[b]==-1){
dist[b]=dist[a]+d[a][i];
q[++dr]=b;
}
}
}
ofstream fout ("sate.out");
fout << dist[dy];
fout.close();
return 0;
}