Pagini recente » Cod sursa (job #2398996) | Cod sursa (job #913907) | Cod sursa (job #3276382) | Cod sursa (job #2492834) | Cod sursa (job #721581)
Cod sursa(job #721581)
#include<fstream>
#include<cstdlib>
#include<vector>
using namespace std;
#define INF 1073741824
ifstream f("sate.in");
ofstream g("sate.out");
int N, M, X, Y;
int dist[30001];
vector<pair<int, int> >graph[30001];
typedef vector<pair<int, int> >::iterator it;
void DFS(int node)
{ for(it i = graph[node].begin(); i != graph[node].end(); i++)
{ if(dist[i->first] != INF) continue;
if(i->first > node)
dist[i->first] = dist[node] + i->second;
else dist[i->first] = dist[node] - i->second;
DFS(i->first);
}
}
int main()
{ int i, x, y, c;
f>>N>>M>>X>>Y;
for(i = 1; i <= M; i++)
{ f>>x>>y>>c;
graph[x].push_back(make_pair(y, c));
graph[y].push_back(make_pair(x, c));
}
for(i = 1; i <= N; i++) dist[i] = INF;
dist[1] = 0;
DFS(1);
g<<abs(dist[Y] - dist[X]);
}