Pagini recente » Cod sursa (job #98605) | Cod sursa (job #3182239) | Cod sursa (job #2522763) | Cod sursa (job #1965452) | Cod sursa (job #885675)
Cod sursa(job #885675)
#include <fstream>
#include <vector>
using namespace std;
ifstream d("sate.in");
ofstream o("sate.out");
int i,j,k,m,n,t,v[30005],x,y,b,c,cost,costf;
vector <int> a[30005],pc,co[30005];
vector <int>::iterator it,itc;
int main()
{
d>>n>>m>>x>>y;
for (i=1;i<=m;i++)
{
d>>b>>c;
a[b].push_back(c);
a[c].push_back(b);
d>>cost;
co[b].push_back(cost);
co[c].push_back(cost);
};
for (i=1;i<=n;i++) v[i]=-1;
pc.push_back(x);
v[x]=0;
while (!pc.empty())
{
b=pc.back();
pc.pop_back();
for (it=a[b].begin(), itc=co[b].begin(); it!=a[b].end(); ++it, ++itc)
if (v[*it]==-1)
{
if (b<*it) v[*it]=v[b]+*itc;
else v[*it]=v[b]-*itc;
pc.push_back(*it);
};
};
o<<v[y];
}