Pagini recente » Cod sursa (job #2629997) | Cod sursa (job #967887) | Cod sursa (job #1433410) | Cod sursa (job #2375667) | Cod sursa (job #69502)
Cod sursa(job #69502)
#include <stdio.h>
#include <vector>
using namespace std;
vector<int> v[32768], c[32768];
int n, m, start, end, used[32768], total;
bool ok;
void dfs(int);
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
int i, a, b, cost;
scanf("%d%d%d%d", &n, &m, &start, &end);
for(i = 1; i <= n; ++i)
{
scanf("%d%d%d", &a, &b, &cost);
v[a].push_back(b);
c[a].push_back(cost);
v[b].push_back(a);
c[b].push_back(-cost);
}
dfs(start);
return 0;
}
void dfs(int nod)
{
int i;
used[nod] = 1;
for(i = 0; i < v[nod].size() && !ok; ++i)
{
if(!used[v[nod][i]])
{
total += c[nod][i];
if(v[nod][i] == end)
{
ok = true;
printf("%d\n", total);
return;
}
else
{
dfs(v[nod][i]);
total -= c[nod][i];
}
}
}
}