Pagini recente » Cod sursa (job #2897083) | Cod sursa (job #2859418) | Cod sursa (job #2679797) | Cod sursa (job #2859401) | Cod sursa (job #2002623)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
struct dist
{
int s,d;
};
dist v[30000][1000];
int el[30000];
int findDist(int x,int y,int d = 0)
{
cout<<x<<'-'<<y<<':'<<d<<'\n';
if(el[x] == 0) return 0;
if(x == y) return d;
int n = el[x];
el[x] = 0;
int i,r = 0;
for(i=0; i<n && r == 0; i++)
{
if(v[x][i].s < x) r = findDist(v[x][i].s,y,d - v[x][i].d);
else r = findDist(v[x][i].s,y,d + v[x][i].d);
}
return r;
}
int main()
{
int n,m,x,y;
in>>n>>m>>x>>y;
int i;
for(i=0; i<m; i++)
{
int a,b,l;
in>>a>>b>>l;
dist dst;
dst.d = l;
dst.s = b;
v[a][el[a]] = dst;
el[a]++;
dst.s = a;
v[b][el[b]] = dst;
el[b]++;
}
out<<findDist(x,y);
return 0;
}