Pagini recente » Cod sursa (job #670515) | Cod sursa (job #413044) | Cod sursa (job #1243383) | Cod sursa (job #1438693) | Cod sursa (job #2213805)
#include <fstream>
#include <vector>
using namespace std;
vector <int> arc[30002] , cost[30002];
int n,m,x,y,a,b,c,rasp;
bool viz[30002];
void dfs(int start, int dis)
{
int i;
viz[start]=1;
if(start==y)
{
rasp=dis;
return ;
}
for(i=0;i<arc[start].size();i++)
if(!viz[arc[start][i]])
if(start<arc[start][i])
dfs(arc[start][i],dis+cost[start][i]);
else
dfs(arc[start][i],dis-cost[start][i]);
}
int main()
{
ifstream f("sate.in");
ofstream g("sate.out");
int i;
f>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
f>>a>>b>>c;
arc[a].push_back(b);
arc[b].push_back(a);
cost[a].push_back(c);
cost[b].push_back(c);
}
dfs(x,0);
g<<rasp;
return 0;
}