Pagini recente » Cod sursa (job #1661857) | Cod sursa (job #1679765) | Profil Djok | Cod sursa (job #3121892) | Cod sursa (job #2390135)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sate.in");
ofstream fout ("sate.out");
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(){
int i,j,x,y,d;
fin>>n>>m>>xx>>yy;
while (m--){
fin>>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;
}
}
}
fout<<q[yy]-1;
}