Pagini recente » Cod sursa (job #140657) | Cod sursa (job #2868416) | Cod sursa (job #97191) | Cod sursa (job #666700) | Cod sursa (job #3185169)
#include <bits/stdc++.h>
#define oo 2e9
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
vector<pair<int, int>> L[100005];
int n, d[100005], X, Y;
queue<int> q;
void Citire()
{
int m, x, y, cost;
fin >> n >> m >> X >> Y;
for(int i = 1; i <= m; i++)
{
fin >> x >> y >> cost;
L[x].push_back({cost, y});
L[y].push_back({-cost, x});
}
}
void Bfs(int start, int finish)
{
int k;
for(int i = 1; i <= n; i++)
d[i] = oo;
d[start] = 0;
q.push(start);
while(!q.empty())
{
k = q.front();
q.pop();
for(auto e : L[k])
if(d[e.second] > d[k] + e.first)
{
d[e.second] = d[k] + e.first;
q.push(e.second);
}
}
fout << d[finish] << "\n";
}
int main()
{
Citire();
Bfs(X, Y);
fin.close();
fout.close();
return 0;
}