Pagini recente » Cod sursa (job #764210) | Cod sursa (job #2486345) | Cod sursa (job #2068740) | Cod sursa (job #243705) | Cod sursa (job #2390150)
#include <bits/stdc++.h>
using namespace std;
typedef struct nod {
int info;
int d;
nod *next;
} *lista;
int n,m,xx,yy,q[30001];
lista a[100025];
void add (lista &p, int k, int q){
lista r=new nod;
r->info=k;
r->d=q;
r->next=p;
p=r;
}
int main(){
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
int i,j,x,y,d;
scanf("%d", &n, &m, &xx, &yy);
while (m--){
scanf("%d", &x, &y, &d);
add (a[x],y,d);
}
q[xx]=1; lista r= new nod;
while(!q[yy]){
for (i=1; i<=n; ++i){
r=a[i];
while (r){
if(q[i] && !q[r->info]){
q[r->info]=q[i]+r->d;
}
else
if(!q[i] && q[r->info]){
q[i]=q[r->info]-r->d;
}
r=r->next;
}
}
} int mmm=q[yy]-1;
printf("%d", mmm);
}