Pagini recente » Cod sursa (job #228926) | Cod sursa (job #2404053) | Cod sursa (job #932682) | Cod sursa (job #2285043) | Cod sursa (job #1491935)
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,x,y,c,i,j,viz[30001],a,b,d;
struct nod{
int cost;
int vecin;
nod *next;
};
typedef nod* lista;
lista q;
lista l[30001];
void rez(int nod, int dist)
{
lista p;
if(nod==y)
{
fout<<dist<<'\n';
exit(0);
}
viz[nod]=1;
for( p=l[nod]; p!=NULL; p=p->next)
{
if(!viz[p->vecin])
{
rez(p->vecin, p->cost+dist);
}
}
}
int main()
{
fin>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
fin>>a>>b>>d;
if(a>b) swap(a, b);
q=new nod;
q->cost=-d;
q->vecin=a;
q->next=l[b];
l[b]=q;
q=new nod;
q->cost=d;
q->vecin=b;
q->next=l[a];
l[a]=q;
}
rez(x,0);
return 0;
}