Pagini recente » Cod sursa (job #2732926) | Cod sursa (job #2074024) | Cod sursa (job #3323846) | Cod sursa (job #3343426) | Cod sursa (job #3310116)
#include<bits/stdc++.h>
#define pii pair<int,int>
#define inf 1e9
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int N = 30002;
vector<pii> g[N];
int dist[N], n;
void Dijkstra(int u){
for(int i=1;i<=n;i++)
dist[i] = inf;
priority_queue<pii, vector<pii>, greater<pii>> pq;
int nod;
pq.push({0,u});
dist[u] = 0;
while(!pq.empty()){
nod = pq.top().second;
pq.pop();
for(auto e : g[nod]){
if(dist[e.first] > dist[nod] + e.second){
dist[e.first] = dist[nod] + e.second;
pq.push({e.second, e.first});
}
}
}
}
int main(){
int m, x, y, i, j, c, l, r;
fin>>n>>m>>x>>y;
for(i=1;i<=m;i++){
fin>>l>>r>>c;
g[l].push_back({r, c});
g[r].push_back({l, -c});
}
Dijkstra(x);
//for(i=1;i<=n;i++)
// fout<<dist[i]<<" ";
fout<<endl;
fout<<dist[y];
}