Pagini recente » Cod sursa (job #1342448) | Cod sursa (job #61591) | Cod sursa (job #2262421) | Cod sursa (job #1343321) | Cod sursa (job #1837234)
#include <fstream>
#include <vector>
#define DIM 30001
using namespace std;
vector < pair<int,int> > L[DIM];
int n,m,x,y,p,u,a,b,cost,vecin,i,nr,ok;
int c[DIM],v[DIM],w[DIM];
int main (){
ifstream fin ("sate.in");
ofstream fout ("sate.out");
fin>>n>>m>>x>>y;
for (i=1;i<=m;i++){
fin>>a>>b>>cost;
L[a].push_back(make_pair(b,cost));
L[b].push_back(make_pair(a,-cost));
}
p = 1;
u = 1;
c[1] = x;
v[x] = 1; // cei vizitati
w[x] = 0; // vectorul de costuri
while (p<=u){
for (i=0;i<L[c[p]].size();i++){
vecin = L[c[p]][i].first;
nr = L[c[p]][i].second;
if (v[vecin] == 0){
u++;
c[u] = vecin;
v[vecin] = 1+v[c[p]];
w[vecin] = nr + w[c[p]];
if (vecin == y){
ok = 1;
fout<<w[vecin];
break;
}
}
}
if (ok == 1)
break;
p++;
}
return 0;
}