Pagini recente » Cod sursa (job #2053863) | Cod sursa (job #3334356) | Cod sursa (job #3352346) | Cod sursa (job #3336823) | Cod sursa (job #3305262)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int NMAX=3e4;
vector<pair<int,int> > mat[NMAX+5];
vector<int> vizitat(NMAX+5);
void bfs(int nod){
queue<int> q;
q.push(nod);
vizitat[nod]=1;
while(!q.empty()){
nod=q.front();
q.pop();
for(auto it:mat[nod]){
if(vizitat[it.first]==0 or vizitat[it.first]>vizitat[nod]+it.second){
vizitat[it.first]=vizitat[nod]+it.second;
q.push(it.first);
}
}
}
}
int main(){
int n, m, x, y;
fin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
int x1, y1, d1;
fin>>x1>>y1>>d1;
mat[x1].push_back({y1,d1});
mat[y1].push_back({x1,-d1});
}
bfs(x);
fout<<vizitat[y]-1;
}