Pagini recente » Cod sursa (job #1170257) | Cod sursa (job #127611) | Cod sursa (job #1226935) | Cod sursa (job #2934673) | Cod sursa (job #1438975)
#include <iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int N,M,X,Y,viz[30005],cost[30005],i,j,d,k;
vector <pair<int,int> > v[30005];
void dfs(int nod)
{
viz[nod]=1;
for(int i=0;i<v[nod].size();i++)
{
if(viz[v[nod][i].first]==0)
{
if(nod<v[nod][i].first)
cost[v[nod][i].first]=cost[nod]+v[nod][i].second;
else
cost[v[nod][i].first]=cost[nod]-v[nod][i].second;
if(v[nod][i].first==Y)
return;
else
dfs(v[nod][i].first);
}
}
}
int main()
{
f>>N>>M>>X>>Y;
for(k=1;k<=M;k++)
{
f>>i>>j>>d;
v[i].push_back(make_pair(j,d));
v[j].push_back(make_pair(i,d));
}
k=0;
dfs(X);
g<<cost[Y];
f.close();
g.close();
return 0;
}