Pagini recente » Cod sursa (job #1760060) | Cod sursa (job #206665) | Cod sursa (job #2316483) | Cod sursa (job #1281620) | Cod sursa (job #2455451)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector<pair<int,long long> >g[30003];
int x,y,m,n,sol;
long long d[30003];
queue<int>q;
void citire()
{
ifstream fin("sate.in");
fin>>n>>m>>x>>y;
if(x>y)
{
int aux;
aux=x;
x=y;
y=aux;
}
int a,b,c;
for(int i=0;i<m;i++)
{
fin>>a>>b>>c;
g[a].push_back(make_pair(b,c));
g[b].push_back(make_pair(a,c));
}
}
void bfs()
{
q.push(x);
int c;
while(!q.empty())
{
c=q.front();
q.pop();
for(auto&v:g[c])
{
if(d[v.first]==0)
{
q.push(v.first);
if(c<v.first)
d[v.first]=d[c]+v.second;
else
d[v.first]=d[c]-v.second;
if(v.first==y)
return;
}
}
}
}
void afisare()
{
ofstream fout("sate.out");
if(d[y]<0)
d[y]=-d[y];
fout<<d[y];
}
int main()
{
citire();
bfs();
afisare();
return 0;
}