Pagini recente » Cod sursa (job #2121285) | Cod sursa (job #1695745) | Cod sursa (job #886669) | Cod sursa (job #2209448) | Cod sursa (job #2381185)
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
long int viz[30000],info[30000],s=0;
int main()
{
long int x,m,n,x1,y1,e,b,c,y,i,k=0,j;
vector <long int> v[30000];
vector <long int> a[30000];
queue <long int> q;
ifstream f("sate.in");
ofstream g("sate.out");
f>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
f>>e>>b>>c;
v[e].push_back(b);
v[b].push_back(e);
a[e].push_back(c);
a[b].push_back(c);
}
q.push(x);
viz[x]=1;
while(q.size()>0)
{
q.pop();
for(i=0;i<v[x].size();i++)
{
if(viz[v[x][i]]==0)
{
q.push(v[x][i]);
viz[v[x][i]]=1;
info[v[x][i]]=x;
}
if(v[x][i]==y)
{
k=1;
break;
}
}
if(k)
break;
}
f.close();
s=0;
while(info[y])
{
for(i=0;i<v[info[y]].size();i++)
if(y==v[info[y]][i])
{
if(info[y]>y)
s-=a[info[y]][i];
else
s+=a[info[y]][i];
break;
}
y=info[y];
}
g<<s;
g.close();
return 0;
}