Pagini recente » Cod sursa (job #1082496) | Cod sursa (job #2374332)
#include <bits/stdc++.h>
using namespace std;
ifstream fi ("sate.in");
ofstream fo ("sate.out");
typedef struct nod {
int info;
int dist;
nod *next;
} *lista;
int i,j,x,y,d,n,m,X,Y,q[100025];
lista A[100025];
void add (lista &p, int k, int q)
{
lista r = new nod;
r->info = k;
r->dist = q;
r->next = p;
p=r;
}
int main () {
fi>>n>>m>>X>>Y ;
while (m--)
{
fi>>x>>y>>d;
add (A[x],y,d);
}
q[X]=1;
while(q[Y] == 0)
{
lista r= new nod;
for(int i = 1;i <= n; ++i)
{
r=A[i];
while (r)
{
if(q[i] != 0 && q[r->info] == 0)
{
q[r->info]=q[i]+r->dist;
}
else
if(q[i]==0 && q[r->info] !=0 )
{
q[i]=q[r->info]-r->dist;
}
r=r->next;
}
}
}
fo<<q[Y]-1;
return 0;
}