Pagini recente » Cod sursa (job #386780) | Cod sursa (job #1706532) | Cod sursa (job #861492) | Cod sursa (job #1888494) | Cod sursa (job #1341260)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
queue <int>q;
int main()
{
int n,m,i,x,y,s=0,au,b,d,u;
in>>n>>m>>x>>y;
x--;
y--;
vector<int>v[n];
int c[n],pi[n],a[n][n];
for(i=0;i<n;i++)
{
c[i] = false;
pi[i]=0;
}
for(i=0;i<m;i++)
{
in>>au>>b>>d;
au--;
b--;
a[au][b]=d;
a[b][au]=d;
v[au].push_back(b);
v[b].push_back(au);
}
c[x] = true;
q.push(x);
while(!q.empty())
{
u = q.front();
q.pop();
for(vector<int>::iterator it =v[u].begin();it!=v[u].end();++it)
if (!c[*it])
{
c[*it]=true;
q.push(*it);
pi[*it] = u;
}
}
bool ok = true;
while(ok)
{
if (pi[y]<y)
s =s+ a[pi[y]][y];
else
s=s- a[pi[y]][y];
y = pi[y];
if (y == x)
ok = false;
}
out<<s;
return 0;
}