Pagini recente » Cod sursa (job #1388884) | Cod sursa (job #2085065) | Cod sursa (job #542615) | Cod sursa (job #470527) | Cod sursa (job #1140534)
#include <fstream>
#include <vector>
#define DIM 30030
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
std::vector < pair<int, int> > l[100050];
int d[DIM], c[DIM], v[DIM];
int i,u,p,x,y,n,m,a,b,D,nr;
void bfs(int x) {
int p = 1;
int u = 1;
c[1] = x;
v[x] = 1;
d[x] = 0;
while (p<=u) {
for (i=0;i<l[ c[p] ].size(); i++) {
if (v[ l[ c[p] ] [i] .first ] == 0) {
d[ l[ c[p] ] [i] .first ] = d[ c[p] ] + l[ c[p] ] [i] .second;
u++;
c[u] = l[ c[p] ] [i] .first;
v[l[ c[p] ] [i] .first] = 1;
if (c[u] == y) {
fout<<d[y];
return ;
}
}
}
p++;
}
}
int main()
{
fin>>n>>m>>x>>y;
for(i=1;i<=m;i++){
fin>>a>>b>>D;
l[a].push_back( make_pair(b, D) );
l[b].push_back( make_pair(a, -D) );
/*
while(nr<=b){
nr++;
d[a].push_back(0);
}
d[a][b]=D;
nr=0;
*/
}
bfs(x);
return 0;
}