Pagini recente » Cod sursa (job #257561) | Cod sursa (job #579842) | Cod sursa (job #2525801) | Cod sursa (job #61461) | Cod sursa (job #3174362)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sate.in");
ofstream fout ("sate.out");
const int maxDim = 3e4 + 5;
int N , M , X , Y , ans;
bool viz[maxDim];
vector <pair <int , int>> adList[maxDim];
void BFS (int n)
{
queue <pair<int , int>> Q;
Q.push(make_pair(n , 0));
viz[n] = 1;
while(!Q.empty())
{
int t = Q.front().first;
int d = Q.front().second;
Q.pop();
if(t == Y)
{
ans = d;
return;
}
for(int i = 0 ; i < adList[t].size() ; ++i)
if(viz[adList[t][i].first] == 0)
{
viz[adList[t][i].first] = 1;
Q.push(make_pair(adList[t][i].first , d + adList[t][i].second));
}
}
}
int main()
{
fin >> N >> M >> X >> Y;
for(int i = 1 ; i <= M ; ++i)
{
int a , b , d;
fin >> a >> b >> d;
adList[a].push_back(make_pair(b , d));
adList[b].push_back(make_pair(a , -d));
}
BFS(X);
fout << ans;
}