Pagini recente » Cod sursa (job #338191) | Cod sursa (job #1478171) | Cod sursa (job #221735) | Cod sursa (job #2437320) | Cod sursa (job #2273215)
#include <fstream>
#include <vector>
using namespace std;
int n, m, dx, dy, dist[100025];
vector<int> l[100025], d[100025];
void distanta(int cr, int stop){
for (unsigned int i=0; i<l[cr].size(); i++)
if (dist[l[cr][i]]==-1){
dist[l[cr][i]]=dist[cr]+d[cr][i];
distanta(l[cr][i], stop);
}
}
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;
distanta(dx, dy);
ofstream fout ("sate.out");
fout << dist[dy];
fout.close();
return 0;
}