Pagini recente » Cod sursa (job #3040259) | Cod sursa (job #2053780) | Cod sursa (job #2458071) | Cod sursa (job #37731) | Cod sursa (job #803429)
Cod sursa(job #803429)
#include <fstream>
#include <vector>
#include <queue>
#define mkp make_pair
#define pb push_back
using namespace std;
int D[100005];
vector<int> q;
vector< pair<int,int> > a[100005];
int N, M, X, Y;
int cr = 0;
int nodC, nodN, cost;
int main()
{
int x,y,c;
ifstream f("sate.in");
ofstream g("sate.out");
f>>N>>M>>X>>Y;
for ( int i = 1; i <= M; i++ )
{
f>>x>>y>>c;
a[x].pb( mkp( y,c ));
a[y].pb( mkp( x,c ));
}
q.pb( X );
for ( int i = 0; i < q.size(); i++ )
{
nodC = q[ i ];
for ( int j = 0; j < a[ nodC ].size(); j++ )
if ( !D[ a[nodC][j].first ] )
{
nodN = a[nodC][j].first;
cost = a[nodC][j].second;
if ( nodN > nodC )
D[ nodN ] = D[ nodC ] + cost;
else
D[ nodN ] = D[ nodC ] - cost;
q.pb( nodN );
}
}
g<<D[Y]<<"\n";
return 0;
}