Pagini recente » Cod sursa (job #509270) | Cod sursa (job #1459071) | Cod sursa (job #2885631) | Cod sursa (job #1659590) | Cod sursa (job #3187874)
#include <bits/stdc++.h>
#define DIM 30001
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n, m, x, y, a, b, c, d;
bool parcurs[DIM][DIM];
int i, j, k;
vector <pair <int, int> > G[DIM];
int main(){
fin>>n>>m>>x>>y;
for(i=1; i<=m; i++){
fin>>a>>b>>c;
G[a].push_back(make_pair(b, c));
G[b].push_back(make_pair(a, -c));
}
for(i=1; i<=n; i++){
for(j=0; j<G[i].size(); j++){
a=G[i][j].first;
c=G[i][j].second;
if(!parcurs[i][a]){
for(k=0; k<G[a].size(); k++){
b=G[a][k].first;
d=G[a][k].second;
if(b!=i){
G[i].push_back(make_pair(b, c+d));
G[b].push_back(make_pair(i, -(c+d)));
}
}
parcurs[i][a]=1;
}
}
}
for(i=0; i<G[x].size(); i++){
if(G[x][i].first==y){
fout<<G[x][i].second;
break;
}
}
}