Pagini recente » Cod sursa (job #15641) | Cod sursa (job #2521073) | Cod sursa (job #1699555) | Cod sursa (job #1608421) | Cod sursa (job #2273209)
#include <fstream>
#include <vector>
using namespace std;
int n, m, dx, dy;
vector<int> l[100025], d[100025];
int dist=0;
bool viz[100025];
void distanta(int cr, int stop, int parc){
if (cr==stop)
dist=parc;
if (viz[stop]==true)
return;
for (unsigned int i=0; i<l[cr].size(); i++)
if (viz[l[cr][i]]==false){
viz[l[cr][i]]=true;
distanta(l[cr][i], stop, parc+d[cr][i]);
}
}
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();
viz[dx]=true;
distanta(dx, dy, 0);
ofstream fout ("sate.out");
fout << dist;
fout.close();
return 0;
}