Pagini recente » Cod sursa (job #2723562) | Cod sursa (job #357103) | Cod sursa (job #852530) | Cod sursa (job #2266419) | Cod sursa (job #2498310)
#include <fstream>
#include <vector>
using namespace std;
vector < pair <int,int> > v[30001];
bool viz[30001];
int fin;
ifstream in ("sate.in");
ofstream out ("sate.out");
void drum(int nod,int dist)
{
viz[nod]=1;
if (nod==fin)
{
out<<dist;
}
else
{
int nod1,d;
for (int i=0;i<v[nod].size();i++)
{
nod1=v[nod][i].first;
d=v[nod][i].second;
if (viz[nod1]==0&&nod1<nod)
drum(nod1,dist-d);
else if (viz[nod1]==0&&nod1>nod)
drum(nod1,dist+d);
}
}
}
int main()
{
int n,m,st,a,b,c;
in>>n>>m>>st>>fin;
for (int i=1;i<=m;i++)
{
in>>a>>b>>c;
v[a].push_back({b,c});
v[b].push_back({a,c});
}
drum (st,0);
return 0;
}