Pagini recente » Cod sursa (job #1428008) | Cod sursa (job #1032732) | Cod sursa (job #2778679) | Cod sursa (job #2657327) | Cod sursa (job #1391179)
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
int viz[20000],tata[20000],s=0;
int main()
{
int x,m,n,x1,y1,e,b,c,y,i,k=0,j;
vector <int> v[20000];
vector <int> a[20000];
queue <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)
{
x=q.front();
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;
tata[v[x][i]]=x;
}
if(v[x][i]==y)
{
k=1;
break;
}
}
if(k)
break;
}
f.close();
s=0;
while(tata[y])
{
for(i=0;i<v[tata[y]].size();i++)
if(y==v[tata[y]][i])
{
if(tata[y]>y)
s-=a[tata[y]][i];
else
s+=a[tata[y]][i];
break;
}
y=tata[y];
}
g<<s;
g.close();
return 0;
}