Pagini recente » Cod sursa (job #503293) | Cod sursa (job #2219671) | Cod sursa (job #2419927) | Cod sursa (job #270961) | Cod sursa (job #1478158)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int NMAX = 30000 + 10;
int N , M , b , e , i , x , y , c;
vector < pair < int , int > > g[NMAX];
int d[NMAX];
queue < int > iq;
int main()
{
fin >> N >> M >> b >> e;
for (i = 1 ; i <= M ; ++i)
{
fin >> x >> y >> c;
g[x].push_back({y , c});
g[y].push_back({x , c});
}
iq.push(b);
while (iq.size())
{
c = iq.front();
iq.pop();
for (auto j = g[c].begin() ; j != g[c].end() ; ++j)
{
if (d[j -> first]) continue;
d[j -> first] = (j -> first > c) ? (d[c] + j -> second) : (d[c] - j -> second);
iq.push(j -> first);
}
}
fout << d[e] << '\n';
return 0;
}