Pagini recente » Cod sursa (job #883689) | Cod sursa (job #1905711) | Cod sursa (job #1913607) | Cod sursa (job #2130636) | Cod sursa (job #2370295)
#include <bits/stdc++.h>
#define NMAX 30005
using namespace std;
ifstream fin( "sate.in" );
ofstream fout( "sate.out" );
int N, M;
vector <int> Ad[NMAX];
vector <int> Cost[NMAX];
int s1, s2;
bool found;
bool viz[NMAX];
void read()
{
int i, x, y, z;
fin >> N >> M >> s1 >> s2;
for ( i = 1; i <= M; ++i )
{
fin >> x >> y >> z;
Ad[x].push_back( y );
Cost[x].push_back( z );
Ad[y].push_back( x );
Cost[y].push_back( z );
}
fin.close();
}
void DFS( int nod, int dist )
{
int i, w;
viz[nod] = 1;
if ( nod == s2 )
{
fout << dist;
found = 1;
return;
}
for ( i = 0; i < Ad[nod].size() && !found; ++i )
{
w = Ad[nod][i];
if ( !viz[w] )
if ( w > nod ) DFS( w, dist + Cost[nod][i] );
else DFS( w, dist - Cost[nod][i] );
}
}
int main()
{
read();
DFS( s1, 0 );
fout.close();
return 0;
}